125. 验证回文串
125. 验证回文串
难度简单
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: "A man, a plan, a canal: Panama" 输出: true 解释:"amanaplanacanalpanama" 是回文串
示例 2:
输入: "race a car" 输出: false 解释:"raceacar" 不是回文串
提示:
1 <= s.length <= 2 * 105
- 字符串
s
由 ASCII 字符组成
解法:
先根据题意,只要字母和数字。把大写转小写,字母,数字存入新的字符数组中。
再使用双指针挨个比较。
bool isPalindrome(char * s){
char str[200000];
int i=0;
int len =strlen(s);
int j = 0;
int l = 0;
int r = 0;
for(i=0; i<len; i++){
if(s[i] >= 65 && s[i]<=90){ //大写字母范围65~90
str[j++] = s[i] + 32;
}else if(s[i] >= 48 && s[i] <= 57){
str[j++] = s[i];
}else if(s[i] >= 97 && s[i] <= 122){ //小写字母范围97~122
str[j++] = s[i];
}else{
continue;
}
}
l = 0;
r = j-1;
while(l<r){
if(str[l] == str[r]){
l++;
r--;
}else{
return false;
}
}
return true;
}