LeetCode 125题验证回文串
125. 验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: “A man, a plan, a canal: Panama”
输出: true
示例 2:
输入: “race a car”
输出: false
利用双指针方法,判断的有点啰嗦。。。
执行结果:通过
显示详情
执行用时 :
4 ms, 在所有 C++ 提交中击败了98.77%的用户
内存消耗 :9 MB, 在所有 C++ 提交中击败了100.00%的用户
代码如下:
class Solution {
public:
bool isPalindrome(string s) {
if(s.size()<=1)
return true;
int lo=0;
int hi=s.size()-1;
while(lo<s.size())
{
if(s[lo]<'0'||(s[lo]>'9'&&s[lo]<'A')||s[lo]>'z'||(s[lo]>'Z'&&s[lo]<'a'))
{
lo++;
continue;
}
if(s[hi]<'0'||(s[hi]>'9'&&s[hi]<'A')||s[hi]>'z'||(s[hi]>'Z'&&s[hi]<'a'))
{
hi--;
continue;
}
else
{
if(s[lo]==s[hi])
{
lo++;
hi--;
}
else if(s[lo]>='0'&&s[lo]<='9')
return false;
else if(s[hi]>='0'&&s[hi]<='9')
return false;
else if(s[lo]==s[hi]+32||
s[lo]==s[hi]-32)
{
lo++;
hi--;
}
else
return false;
}
}
return true;
}
};