原题地址:http://acm.hdu.edu.cn/showproblem.php?pid=2029已AC
利用折半查找实现
#include <iostream>
using namespace std;
void isHuiwen(char*a)
{
int flag=1;
int len=strlen(a);
for (int i = 0; i < len/2; ++i)//折半查找,逐个判断首尾字符是否相等
if(a[i]!=a[l-i-1])
{
flag=0;//若不相等,标记为0,同时中断
break;
}
if(flag)
cout<<"yes"<<endl;
else
cout<<"no"<<endl;
}
int main()
{
int n;
char a[100];
cin>>n;
getchar();//这里使用getchar()目的是接收输入的回车符
while(n--)
{
gets_s(a);
isHuiwen(a);
}
return 0;
}