如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。
字母和数字都属于字母数字字符。
给你一个字符串 s,如果它是 回文串 ,返回 true ;否则,返回 false 。
class Solution {
public:
bool isPalindrome(string s) {
//定义新字符串a,用来保存字母和数字
string a;
//遍历字符串s
for(int i=0;i<s.size();i++){
//如果s[i]是字母或者数字
if(tolower(s[i])>='a'&&tolower(s[i])<='z'||s[i]>='0'&&s[i]<='9'){
//s[i]加到a上
a+=tolower(s[i]);
}
}
//双指针检查是否为回文串
int l=0,r=a.size()-1;
//左指针小于右指针就循环
while(l<r){
//如果左指针的值不等于右指针的值
if(a[l]!=a[r]){
//返回false
return false;
}
左指针++,右指针--
l++;
r--;
}
return true;
}
};
186

被折叠的 条评论
为什么被折叠?



