Every day a leetcode
题目来源:125. 验证回文串
解法1:字符串翻转
先对原字符串进行筛选,只把字母和数字字符留下,然后全部转为大写,方便翻转后比较。
将字符串翻转后,若与原字符串相同,则为回文串。
相关函数:
代码:
class Solution {
public:
string reverse(string s)
{
int len=s.size();
for(int i=0;i<len/2;i++)
{
char temp=s[i];
s[i]=s[len-i-1];
s[len-i-1]=temp;
}
return s;
}
bool isPalindrome(string s) {
string str;
for(char c:s)
{
if(isalnum(c))
{
str+=toupper(c);
}
}
return str == reverse(str);
}
};
结果:

解法1:双指针
在筛选后的字符串中,利用双指针判断是否是回文串。
代码:
class Solution {
public:
bool isPalindrome(string s) {
string str;
for(char c:s)
{
if(isalnum(c))
{
str+=toupper(c);
}
}
int left=0;
int right=str.size()-1;
while(left<right)
{
if(str[left]!=str[right]) return false;
else
{
left++;
right--;
}
}
return true;
}
};
结果:

这篇博客介绍了两种方法来验证一个字符串是否为回文串。第一种方法是通过字符串翻转,筛选出字母和数字,然后比较原字符串和翻转后的字符串是否相同。第二种方法利用双指针,在筛选后的字符串中,从两端向中间判断每个字符是否相等。代码实现清晰,两种解法均有效且简洁。
587

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



