Algorithm/LeetCode

[string] valid palindrome

sw_develop 2025. 3. 8. 11:05

 Problem

https://leetcode.com/problems/valid-palindrome/description/

 

 Approach & Solution

방식)

더보기
  • 주어진 문자열만 사용해 비교
    • Character 클래스의 isLetterOrDigit(), toLowerCase()
    • String 클래스의 charAt()
  • 투 포인터 사용해 문자열의 앞, 뒤 비교

 

class Solution {
    public boolean isPalindrome(String s) {
        // 조건
        // 대소문자 상관 X
        // 문자 or 숫자
        // 앞에서 읽었을 때, 뒤에서 읽었을 때 동일

        boolean result = true;
        int start = 0;
        int end = s.length() - 1;

        while (start < end) {
            if (!Character.isLetterOrDigit(s.charAt(start))) {
                start++;
            } else if (!Character.isLetterOrDigit(s.charAt(end))) {
                end--;
            } else {
                if (Character.toLowerCase(s.charAt(start)) != Character.toLowerCase(s.charAt(end))) {
                    result = false;
                    break;
                }

                start++;
                end--;
            }
        }

        return result;
    }
}