判断回文串
Posted petewell
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了判断回文串相关的知识,希望对你有一定的参考价值。
问题描述
输入一串字符串,判断是否是回文串。
输入:
一行字符串,长度不超过255。
输出:
如果是回文串,输出“YES”,否则输出“NO”。
eg:
输入:
12321
输出:
YES
思路
回文串就是正着反着读都一样,所有只需要遍历下字符串的前一半,看和后一半对应位置的字符是不是都一样。如果出现不一样的,就不是回文串。
如果前一半的所有字符 str[i] 都和后一半对应位置的字符 str[length - 1 - i] 相等,那就是回文串了、
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| #include <stdio.h> #include <string.h> int judge(char str[]) { int length = strlen(str), i; for(i = 0; i < length/2; i++) { if(str[i] != str[length - 1 - i]) { return 0; } } return 1; } int main() { char str[256]; while(gets(str)) { int answer = judge(str); if(answer == 1) { printf("YESn"); } else{ printf("NOn"); } } return 0; }
|
point
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| #include <stdio.h> #include <string.h> int main() { char str[256]; gets(str); int length = strlen(str), i; for(i = 0; i < length/2; i++) { if(str[i] != str[length - 1 -i]) { printf("NOn"); } else { printf("YESn"); } } return 0; }
|
于是输入一个 “123421”,输出就成了:
此处有一个扶额哭的表情……..
原文:大专栏 判断回文串
以上是关于判断回文串的主要内容,如果未能解决你的问题,请参考以下文章
最长回文字串暴力
判断回文串
字符串处理算法回文判断的算法设计及C代码实现
判断回文串
用递归判断字符串是不是为回文串(C语言) 用递归判断字符串是不是为回文串(C语言)
判断回文串