“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。
Input
输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,后面紧跟着是n个字符串。
Output
如果一个字符串是回文串,则输出"yes",否则输出"no".
Sample
Inputcopy | Outputcopy |
---|---|
4 level abcde noon haha | yes no yes no |
#include <iostream>
using namespace std;
int main()
{
int n;
while (!(cin>>n).eof()) {
getchar();
for (int i = 0;i < n;i++) {
char arr[500];
gets_s(arr);
int leng = strlen(arr);
int t = 0;
for (int j = 0;j < leng;j++) {
if (arr[j] != arr[leng - 1-j]) {
t = 1;
break;
}
}
if (t == 1)
cout << "no" << endl;
else
cout << "yes" << endl;
}
}
}
反思:使用正难则反的思想;
定义变量进行判断是否有错误;
反向证明其正确性;