1原题目
LeetCode_125
2 题目大意
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
3.题目分析
申请一个新的字符串,大小和给定的一样大,然后将之前的字符串里的数字和字母给新的字符串然后依次比较前面和后面的字符
4基础知识
字符串
4.1C的语法
For循环加if判断
4.2数据结构
无
4.3算法
无
5解法
bool isPalindrome(char * s){
int str_len = strlen(s);
char *new_s = (char *)malloc( sizeof(char) * str_len);
int j = 0;
for (int i =0 ; i < str_len; i++){
if ( s[i] >= 'A' && s[i] <= 'Z'){
new_s[j++] = tolower(s[i]);
} else if ( s[i] >= 'a' && s[i] <= 'z'){
new_s[j++] = s[i];
} else if (s[i] >= '0' && s[i] <= '9'){
new_s[j++] = s[i];
} else{
continue;
}
}
for ( int i = 0; i < (j/2); i ++){
if (new_s[i] != new_s[j-i-1]){
return false;
}
}
return true;
}