125. 验证回文串
难度简单341收藏分享切换为英文接收动态反馈
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
**说明:**本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: "A man, a plan, a canal: Panama"
输出: true
示例 2:
输入: "race a car"
输出: false
class Solution {
public:
bool isPalindrome(string s) {
string tmp;
for (auto c : s) {
if (islower(c) || isdigit(c)) tmp += c;
else if (isupper(c)) tmp += (c + 32);
}
int i = 0, j = tmp.size() - 1;
while (i < j) {
if (tmp[i] != tmp[j]) return false;
i++;
j--;
}
return true;
}
};
for (auto c : s)等价于 for(i=0;i<=s.length;i++)
其中,for (auto c : s)是将字符串复制到C中,进行操作,不改变原s的元素;而for (auto &c : s) 是直接对S字符串进行操作