思路有很多种,我们来看最简单的。
就是将给定字符串从头到中点扫描一遍,然后判断每个左字母对应的右字母是否相等。
#include <iostream>
#include <string>
using namespace std;
string s;
bool palindrome() {//palindrome的意思是回文,比如prime palindrome就是回文质数
int size = s.size();
for (int i = 0; i < (size + 1) / 2; i ++)//中点可以由(size+1)/2算出
if (s[i] != s[size - 1 - i])
return false;
return true;
}
int main() {
int size = s.size();
cin >> s;
if (palindrome()) puts("YES");
else puts("NO");
return 0;
}