/*
1.先将所有字符转换为小写或大写。
2.用两个指针left,right分别指向字符串的开头和结尾。
3.如果left和right相遇,则返回true;
否则,比较left和right指向的字符是否相等,相等则分别向中间移动left和right,继续比较它们指向的值;
如果不等,则返回false。
*/
class Solution {
public:
bool isPalindrome(string s) {
transform(s.begin(), s.end(), s.begin(), ::tolower);
int left(0), right(s.size()-1);
while(left < right){
if(!isalnum(s[left])){
++left;
continue;
}
if(!isalnum(s[right])){
--right;
continue;
}
if(s[left] != s[right]) return false;
++left;
--right;
}
return true;
}
};
LeetCode之Valid Palindrome
最新推荐文章于 2021-01-29 12:10:38 发布