hdu2029回文串
问题描述
“回文串”是一个正读和反读都一样的字符串,比如“水平”或者“中午”等等就是回文串。请写一个程序判断读入的字符串是否是“回”文。
输入
输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,后面紧跟着是n个字符串。
输出
如果一个字符串是回文串,则输出“是的”,否则输出“不”。
思路:用两个标记 i 从头往后, j 从后往前,如过 a[i] 不等于 a[j] 就退出 ,如果 i 不大于 j 就输出 no
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>
#include <algorithm>
#include <vector>
#define maxn 100000
using namespace std;
typedef long long ll;
int n;
char a[maxn];
int main()
{
cin>>n;
while(n--){
cin>>a;
int len;
len=strlen(a);
int i,j;
for(i=0,j=len-1;i<=j;i++,j--){
if(a[i]!=a[j]){
cout<<"no"<<endl;
break;
}
}
if(i>j) cout<<"yes"<<endl;
}
return 0;
}