您的位置:首页 > 其它

验证回文字符串(leetcode)

2019-04-28 20:43 267 查看

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: “A man, a plan, a canal: Panama”
输出: true
示例 2:
输入: “race a car”
输出: false

c++版本
class Solution {
public:
bool isPalindrome(string s) {
if(s.size()<=0)return true;
int i =0;
int 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;
}
};

思路:分别从字符串头尾进行验证,非数字和字母的跳过,直到验证完字符串

其中isalnum() isalpha() isdigit()函数分别为判断字符是否为数字字母、字母、数字
tolower() 和toupper()函数分别为变小写和变大写。

python版本
class Solution:
def isPalindrome(self, s: str) -> bool:
if (len(s)<=1):return True
str1=""
for char in s:
if char.isalnum():
str1+=char.lower()
return str1==str1[::-1]

思路:取出字符串中的数字和字母再进行验证

其中python中.lower()和.upper()为将字符串变小写和变大写函数,.isdigit()、.isalpha()和.isalnum()函数均为判断字符串的。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: