时间限制:1秒空间限制:32768K
题目描述
给出一个长度不超过1000的字符串,判断它是不是回文(顺读,逆读均相同)的。
输入描述: 输入包括一行字符串,其长度不超过1000。
输出描述: 可能有多组测试数据,对于每组数据,如果是回文字符串则输出"Yes!”,否则输出"No!"。
输入例子: hellolleh
helloworld
输出例子: Yes!
No!
思路:1.可以将字符串逆序输出到另一个字符串,然后判断这两个字符串是否相等,不过这样需要浪费多余的空间
2.将字符串分成前后两半(中间如果有多余的字符不用管),然后判断对应的字符是否相等
代码(第二种思路):
#include <iostream> #include <string.h> using namespace std; int main(){ char a[1010]; int flag; while(cin>>a){ flag=0; for(int i=0;i<strlen(a)/2;i++) if(a[i]!=a[strlen(a)-1-i]){ flag=1; break; } if(flag==0) cout<<"Yes!"<<endl; else cout<<"No!"<<endl; } return 0; }