Leetcode/NeetCode

[TwoPointers][Easy] 125. Valid Palindrome

자전거통학 2024. 7. 8. 23:22

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

 

주어진 string에서 알파벳이 아닌 문자를 제외하고 palindrome인지 확인하라. 

 

 

다양한 방법으로 풀수 있겠다. 

 

문제 제시대로 직관적으로 풀어본다. 

 

코드 

더보기
bool IsAlphabet(char a)
{
    if (a >= 'a' && a <= 'z')    return true;
    if (a >= 'A' && a <= 'Z')    return true;
    if (a >= '0' && a <= '9')    return true; 
    return false;
}
bool ArraysHashing::isPalindrome(string s)
{
    int left = 0;
    int right = s.length() - 1;

    while (left <= right)
    {
        while (left < s.size() && !IsAlphabet(s[left]))
            ++left;
        while (right >= 0 && !IsAlphabet(s[right]))
            --right;

        if (left >= s.size() || right < 0)
            break;

        char chL = tolower(s[left++]);
        char chR = tolower(s[right--]);

        // cout << chL << ", " << chR << endl;

        if (chL != chR)
            return false;
    }
    return true;
}

 

 

결과.