思路有很多种,我们来看最简单的。

就是将给定字符串从头到中点扫描一遍,然后判断每个左字母对应的右字母是否相等。

CodeCode\downarrow

#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;
}