leetcode 125.验证回文串
题目描述
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明: 本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: “A man, a plan, a canal: Panama”
输出: true
示例 2:
输入: “race a car”
输出: false
解题思路
首先把输入的字符串转化一下,这里统一的里面的大写字符转换成小写的,把非字符数字的字符去掉,生成一个新的字符。新的字符串中,定义两个遍历,从两端向中间移动,如果遇到不相同的字符,表示该字符串是一个非回文串。
class Solution {
public:
bool isPalindrome(string s) {
// 把非字母和数字的字符去掉
s = converter(s);
int len = s.size();
if (len == 0){
return true;
}
int left = 0;
int right = len-1;
while (left < right){
if(s[left] != s[right]){
return false;
}
left++;
right--;
}
return true;
}
/*
字符串转换
*/
string converter(string& s){
string str = "";
for(int i=0; i<s.size(); i++){
if('a'<= s[i] && s[i] <='z') {
str += s[i];
}
else if('A' <= s[i] && s[i] <= 'Z'){
str += s[i]+32;
}
else if('0' <= s[i] && s[i] <= '9'){
str += s[i];
}
else{
continue;
}
}
return str;
}
};
欢迎大家关注我的个人公众号,同样的也是和该博客账号一样,专注分享技术问题,我们一起学习进步

本文详细介绍了如何解决LeetCode上的第125题:验证回文串。通过忽略字符串中的非字母数字字符,并将所有字符转换为小写,我们实现了一个高效的解决方案来判断字符串是否为回文。示例包括了如何处理复杂的输入,如包含特殊字符和混合大小写的字符串。
238

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



