Problem Description
“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。
Input
输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,后面紧跟着是n个字符串。
Output
如果一个字符串是回文串,则输出"yes",否则输出"no".
Sample Input
4
level
abcde
noon
haha
Sample Output
yes
no
yes
no
分析:
两个指针,分别指向字符串两端,从两端向中间遍历,依次判断是否相同,直到指针指向中间,遍历结束
注意点:
1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 5 int main() 6 { 7 int n,m,len; 8 char *pf,*pl,s[50]; 9 cin>>n; 10 while(n--) 11 { 12 cin>>s; 13 len=strlen(s); 14 pf=pl=s; 15 pl += (len-1); 16 m=1; 17 while(m<len/2) 18 { 19 if(*pf != *pl) 20 { 21 cout<<"no"<<endl; 22 break; 23 } 24 pf++;pl--;m++; 25 } 26 if(m==len/2) 27 cout<<"yes"<<endl; 28 } 29 }