leetcode【字符串】-----125. Valid Palindrome(验证回文串)
1、题目描述
2、分析
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
首先忽略大小写,并且字符串中还有空格,所以我们只需要对字母和数字进行处理就行,写一个功能函数用来判断字符是不是字母或者数字并且对大写字母进行转化为小写。判断是不是回文串,可以使用双指针的方法,用指针来遍历整个字符串判断指针所指的字符是否相等。
3、代码
class Solution {
public:
bool isPalindrome(string s) {
if(!s.size()) return true;
int left=0,right=s.size()-1;
while(left<right){
if(!isNumChar(s[left])) ++left;
else if(!isNumChar(s[right])) --right;
else if(s[left] != s[right]) return false;
else{left++;right--;}
}
return true;
}
bool isNumChar(char &a){
if(a>='a'&&a<='z') return true;
if(a>='A'&&a<='Z'){
a+=32;
return true;
}
if(a>='0'&&a<='9') return true;
return false;
}
};
4、相关知识点
双指针,字符判断。