题目:验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
示例
示例 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;
}
官方题解链接
本文介绍了一种解决LeetCode中有效回文串问题的双指针策略。通过遍历字符串,跳过非字母数字字符,并将字符转为小写进行比较,来判断是否为回文。当发现不匹配时返回false,否则返回true。示例包括了有效和无效的回文串例子。官方题解链接提供了更多细节。
869

被折叠的 条评论
为什么被折叠?



