题目描述
读入一串字符,判断是否是回文串。“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。
输入
一行字符串,长度不超过255。
输出
如果是回文串,输出“YES”,否则输出“NO”。
样例输入
12321
样例输出
YES
#include<iostream>
#include<string>
#include<string.h>
using namespace std;
int main()
{
char s[256];
while(gets(s)){
int len=strlen(s);
int mid=len/2-1;//正向比较的末尾
int j;
if(len%2==0){
j=mid+1;
}else{
j=mid+2;
}
for(int i=mid;i>=0;i--){
if(s[i]==s[j]){
j++;
}else{
break;
}
}
if(j==len){
printf("YES\n");
}else{
printf("NO\n");
}
}
return 0;
}
使用count计数的,不算是第二种方法
#include<iostream>
#include<string>
#include<string.h>
using namespace std;
int main()
{
char s[256];
while(gets(s)){
int len=strlen(s);
int mid=len/2-1;//正向比较的末尾
int count=0;
int j;
if(len%2==0){
j=mid+1;
}else{
j=mid+2;
}
for(int i=mid;i>=0;i--){
if(s[i]==s[j]){
count++;
}
j++;
}
if(count==mid+1){
printf("YES\n");
}else{
printf("NO\n");
}
}
return 0;
}