回文串判断(string类:反转reverse)

2029-Palindromes _easy version

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

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

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

Sample Input
4
level
abcde
noon
haha

Sample Output
yes
no
yes
no

解题思路

常规思路: 用一个循环的两个变量分别指向字符串的最前端和最末端的字母,分别比较,如果有一对不相等的就可以判断不是回文串。
长度要分奇偶,如果长度为奇数,则最中间的一个字母是不用比较的。

简易方法: 用string类的reverse方法将原字符串反转,然后将原字符串和反转后的字符串比较,如果仍相等就是一个回文串。

string类可以用“==”直接比较!

AC代码如下:

#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  cin >> n;
  while (n--) {
    string s, t;
    cin >> s;
    t = s;
    reverse(t.begin(), t.end());
    if (s == t) cout << "yes" << endl;
    else cout << "no" << endl;
  }
}
全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务