回文串判断(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; } }