思路
这道题我见到以后的第一想法就是反转字符串,如果反转之后的字符串和原先的字符串相等,那么就是回文。
其实这就变成了之前的另外一道题“反转字符串”。
当时这道题的解法是这样的:
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号