📑 문제
🔗 https://leetcode.com/problems/valid-palindrome/?envType=study-plan-v2&envId=top-interview-150
📑 접근방식
접근 방식은 Two Pointer을 활용하여 접근하였습니다.
먼저 문장에 있는 특수문자를 제거하고 소문자로 변환하였습니다.
주어진 문장이 palindrome인지만 검사하면 됩니다.
1. 문자열 정리: 주어진 문자열에서 공백과 특수문자를 제거하고, 모든 문자를 소문자로 변환합니다.
2. Palindrome 확인: 두 개의 포인터(왼쪽과 오른쪽)를 사용하여 palindrome인지 확인합니다.
false
를 반환합니다.3. 만약 함수가 아직 return
되지 않았다면 주어진 문장은 palindrome이므로 true
를 반환합니다.
📑 CODE
class Solution {
public boolean isPalindrome(String s) {
String str = s.replaceAll(" ", "");
str = str.replaceAll("[^ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9]", "");
str = str.toLowerCase();
if (str == null || str.length() < 1) {
return true;
}
int left = 0;
int right = str.length() - 1;
while (left <= right && str.charAt(left) == str.charAt(right)) {
left++;
right--;
}
return left >= right;
}
}