思路
这道题我见到以后的第一想法就是反转字符串,如果反转之后的字符串和原先的字符串相等,那么就是回文。
其实这就变成了之前的另外一道题“反转字符串”。
当时这道题的解法是这样的:
char* solve(char* str ) {
// write code here
char temp;
int i = 0;
int n = strlen(str);
for (i = 0; i < n/2; i++)
{
temp = str[i];
str[i] = str[n - i - 1];
str[n - i - 1] = temp;
}
return str;
} 观察了这段代码,我发现其实用不着反转字符串,只需要一次比较成对出现的字符是否相等就可以了。
也就是说比较str[i]和str[n - i - 1]是不是相等就可以了。
于是我的代码变成了这样:
int judge(char* str ) {
// write code here
int n = strlen(str);
int i = 0;
for (i = 0; i < n/2; i++)
{
if (str[i] != str[n - i -1])
{
return false;
}
}
return true;
} 
京公网安备 11010502036488号