织梦手机电影网站模板,注册公司100万意味着什么,电商外贸有什么平台,旅游app用户人群分析题目#xff1a; 解题思路#xff1a; 首先进行移除非字母数字字符#xff0c;并将大写字符转换为小写字符的操作。这个过程中#xff0c;主要利用快慢指针的方式来进行移除操作#xff0c;通过加32将大写字符转换为小写字符。完成后#xff0c;将前一半的数据与后一半的…题目 解题思路 首先进行移除非字母数字字符并将大写字符转换为小写字符的操作。这个过程中主要利用快慢指针的方式来进行移除操作通过加32将大写字符转换为小写字符。完成后将前一半的数据与后一半的数据进行比对。 c库中有专门判断字符的函数可以简化判断条件如代码二所示头文件ctype.hisalnum函数用来判断是否为数字或字母字符isupper函数用来判断是否为大写字母类似功能的字符函数还有很多。
代码
代码一
bool isPalindrome2(char *s)
{//移除非字母数字字符,并将大写字符转换为小写字符char *fast s;char *slow s;while(*fast){if((*fast a *fast z) || (*fast A *fast Z) || (*fast 0 *fast 9)){if(*fast A *fast Z){*fast *fast 32;//转换}*slow *fast;slow;}fast;}*slow \0;//判断for(int i 0; i strlen(s)/2; i){if(s[i] ! s[strlen(s)-i-1])return false;}return true;
}代码二
bool isPalindrome(char *s)
{int i 0, j 0;while(s[i]){if(isalnum(s[i])){if(isupper(s[i]))//转换{s[j] s[i] 32;}elses[j] s[i];}i;}s[j] \0;for(int k 0; k strlen(s) / 2; k){if(s[k] ! s[strlen(s)-k-1]){return false;}}return true;
}