题目:验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
示例
示例 1:
输入: "A man, a plan, a canal: Panama"
输出: true
示例 2:
输入: "race a car"
输出: false
说明
本题中,我们将空字符串定义为有效的回文串。
解法
解法1:双指针
1.遍历整个字符串
2.遇到空格,i++ or j--
3.转换为小写后比较是否相等,出现不等的情况return
bool isPalindrome(string s) {
if(s.size() <= 1)return true;
int i = 0, j = s.size() - 1;
while(i < j)
{
while(i < j && !isalnum(s[i]))
i++;
while(i < j && !isalnum(s[j]))
j--;
if(tolower(s[i++]) != tolower(s[j--]))
return false;
}
return true;
}
官方题解链接