问题描述
判断题目给出的字符串是不是回文,仅考虑字符串中的字母字符和数字字符,并且忽略大小写
例如:"A man, a plan, a canal: Panama"是回文
"race a car"不是回文
注意:
你有没有考虑过字符串可能为空?这是面试时应该提出的一个好问题。
针对这个问题,我们定义空字符串是回文
解法
判断回文串
前后下标不断接近,统一转换成小写
class Solution {
public:
bool isPalindrome(string s) {
if(s.empty())return false;
int l = s.size();
int front=0,end=l-1;
while(front<end){
char t1 = tolower(s[front]),t2=tolower(s[end]);
if(!((t1>=48&&t1<=57)||(t1>=97&&t1<=122))){front++;continue;}
if(!((t2>=48&&t2<=57)||(t2>=97&&t2<=122))){end--;continue;}
if(t1!=t2)return false;
front++;end--;
}
return true;
}
};