[ LeetCode | Java ] 125. Valid Palindrome 📝

dokim·2023년 8월 28일
post-thumbnail

🏷️125. Valid Palindrome


1. 문제 설명

  • 문자열 s가 주어졌을 때, 대문자를 소문자로 변환하고 알파벳과 숫자 이외의 모든 문자를 제거한 후에, 앞으로 읽어도 뒤로 읽어도 같은 경우에는 true를 반환하고 그렇지 않은 경우에는 false를 반환하십시오.

예시 1:

입력: s = "사람, 계획, 운하: 파나마"
출력: true
설명: "amanaplanacanalpanama"는 회문입니다.

예시 2:

입력: s = "race a car"
출력: false
설명: "raceacar"는 회문이 아닙니다.

예시 3:

입력: s = " "
출력: true
설명: s는 영숫자가 아닌 문자를 제거한 후의 빈 문자열 ""입니다.
빈 문자열은 앞뒤로 동일하게 읽으므로 회문입니다.

제약:

  • 1 <= s.length <= 2 * 10^5
  • s인쇄 가능한 ASCII 문자로만 구성됩니다.

2. 접근 방법


3. 구현 코드

class Solution {
    public boolean isPalindrome(String s) {
        s = s.replaceAll("[^a-zA-Z0-9]", "").toLowerCase();
        System.out.println(s);
        
        int len = s.length();
        for(int i = 0; i < len / 2; i++ ){
            if(s.charAt(i) != s.charAt(len - i - 1))
                return false;
        }
        
        return true;
    }
}

4. 개선 사항


5. 최종 회고


6. 참고

0개의 댓글