125. 验证回文串 - 力扣(LeetCode)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public:
bool isPalindrome(string s) {
int left = 0,right = s.size() - 1;
while(left <= right)
{
while(left < s.size() && !isalnum(s[left])) left++;
while(right >= 0 && !isalnum(s[right]))right--;
if(left<= right && tolower(s[left]) != tolower(s[right])) return false;
left++;
right--;
}
return true;
}
};
经典的双指针,需要注意的是两个指针的边界,一个小于s.size(),一个要大于0,而且在循环内注意保持left<=right