题解 | #判断回文#

判断回文

http://www.nowcoder.com/practice/e297fdd8e9f543059b0b5f05f3a7f3b2

思路

这道题我见到以后的第一想法就是反转字符串,如果反转之后的字符串和原先的字符串相等,那么就是回文。

其实这就变成了之前的另外一道题“反转字符串”。

当时这道题的解法是这样的:

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;
}
全部评论

相关推荐

牛客51274894...:照片认真的吗,找个专门拍证件照的几十块钱整端正点吧,要不就别加照片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务