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;
}
결과.
'Leetcode > NeetCode' 카테고리의 다른 글
[TwoPointers][Medium] 15. 3Sum (0) | 2024.07.09 |
---|---|
[TwoPointers][Medium] 167. Two Sum II - Input Array Is Sorted (0) | 2024.07.09 |
[ArraysHasing][Medium] 128. Longest Consecutive Sequence (0) | 2024.07.08 |
[ArraysHashing][Medium] 36. Valid Sudoku (0) | 2024.07.08 |
[ArraysHashing][Medium] 238. Product of Array Except Self (0) | 2024.07.08 |