验证回文串(C++)
Posted L_add
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了验证回文串(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;
}
};
以上是关于验证回文串(C++)的主要内容,如果未能解决你的问题,请参考以下文章