当前位置 博文首页 > L_add的博客:验证回文串(C++)
验证回文串
题目来源:力扣
思路:
class Solution {
public:
bool isDigtalOrWord(char ch)
{
if( (ch>='0' && ch<='9')
|| (ch>='A' && ch<='Z')
|| (ch>='a' && ch<='z'))
return true;
return false;
}
bool isPalindrome(string s)
{
if(s.empty())
return true;
for(int i=0; i<s.size(); ++i)
{
s[i] = tolower(s[i]); //忽略大小写
}
int left = 0;
int right = s.size()-1;
while(left < right)
{
//找到左边第一个未比较的字母
while(left<right && !isDigtalOrWord(s[left]))
left++;
//找到右边第一个未比较的字母
while(left<right && !isDigtalOrWord(s[right]))
right--;
//左右两边字母若不相等,则不是回文
if(s[left] != s[right])
return false;
left++;
right--;
}
return true;
}
};
cs