题目描述: 验证回文字符串
给定一个字符串,确定它是否是回文,只考虑字母数字字符和忽略大小写。
例如:"A man, a plan, a canal: Panama"
是回文字符串。"race a car"
不是回文字符串。
注意:
你有考虑过这个字符串可能是空的吗? 在面试中这是一个很好的问题。
针对此题目,我们将空字符串定义为有效的回文字符串。
解题思路:
删除掉不是字母和数字的字符,把所有大写字母变为小写。再验证回文串就行了
代码:
class Solution {
public:
bool isPalindrome(string s) {
string a, b;
for(int i = 0 ; i < s.length() ; i ++) {
if((s[i] >= 'a'&&s[i] <= 'z')||(s[i] >= '0'&&s[i] <= '9')) {
a += s[i];
b.insert(b.begin(), s[i]);
}
if(s[i] >= 'A'&&s[i] <= 'Z') {
s[i] = s[i] - ('A'-'a');
a += s[i];
b.insert(b.begin(), s[i]);
}
}
if(a == b) return true;
else return false;
}
};