求解回文串,输出结果错误


#include<iostream>
#include<string>
using namespace std;
int main() {
    string s;
    cin >> s;
    int i, j;
    for (i=0; i < s.length()/2; i++) {
        j = s.length() - i - 1;
        if (s[i] != s[j])
            break;
    }
    if (i < s.length() / 2)
        cout << 'NO';
    else
        cout << 'YES';
    return 0;
}

img


想知道哪里有问题,为什么输出不是YES或NO

你把这里改成双引号,单引号输出的就是字符型,然后转化成数字了
这样就可以了,望采纳,谢谢

img

cout输出的字符串要用双引号,你弄成单引号了。

#include<iostream>
#include<string>
using namespace std;
int main() {
    string s;
    cin >> s;
    int i, j;
    for (i = 0; i < s.length() / 2; i++) {
        j = s.length() - i - 1;
        if (s[i] != s[j])
            break;
    }
    if (i < s.length() / 2)
        cout << "NO";
    else
        cout << "YES";
    return 0;
}