HD2029

Palindromes _easy version

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 16932 Accepted Submission(s): 10643

Problem Description

“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。

Input

输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,后面紧跟着是n个字符串。

Output

如果一个字符串是回文串,则输出"yes",否则输出"no".

Sample Input

4 level abcde noon haha

Sample Output

yes no yes no

这是一道很水的题,用之前在《accelerated c++》学的判断回文的方法立即秒杀:

#include<iostream>
#include<string>
using namespace std;
bool is_palindrome(const string s){
    return equal(s.begin(),s.end(),s.rbegin());
}
int main(){
    int n;
    cin>>n;
    while(n--){
        string s;
        cin>>s;
            if(is_palindrome(s))
                cout<<"yes"<<endl;
            else
                cout<<"no"<<endl;        
    }
return 0;
}
 
另外这个代码这也可以过,只不过在visual6.0上却编译不了,在dec c++上可以,方法也很简单:
#include<iostream>
#include<string>
using namespace std;
int main(){
    int n;
    cin>>n;
    while(n--){
        string s1;
        cin>>s1;
        string s2(s1.rbegin(),s1.rend());
        if(s1==s2)
            cout<<"yes"<<endl;
        else
            cout<<"no"<<endl;

    }
    return 0;
}
原文地址:https://www.cnblogs.com/LZYY/p/3288119.html