(呵呵,本来不想发的,看到没人发题解,本蒟蒻就来发一下下)

其实,这道题就是一个回文串的问题,我做完了提交完了后,结果,答案错误。(qwq) 代码如下:

#include <bits/stdc++.h>
using namespace std;
string s;
bool huiwen(string s){//判断这个字符串是否为回文串
    for(int i=0;i<s.size();i++){
        //如果这个字符和它对应的字符不相等,那就不行!(return false)
        if(s[i]!=s[s.size()-i-1]){
            return false;
        }
    }
    return true;
}
int main(){
    getline(cin,s);
    //是回文串,输出Yes
    if(huiwen(s)) cout<<"Yes"<<endl;
    //不是回文串,输出No
    else cout<<"No"<<endl;
    return 0;
}

各位大佬们知道哪里错了吗??

嘻嘻,很简单,样例数据还提醒了!!

读入的数据可能有大写字母!!!!!!!!!!

所以说,得先将所有的字母都转换为大写或小写(我是转换为了小写)!!!

就是这个问题,改了后就能过啦!!!

贴代码:

#include <bits/stdc++.h>
using namespace std;
string s;
bool huiwen(string s){
    for(int i=0;i<s.size();i++){
        if(s[i]!=s[s.size()-i-1]){
            return false;
        }
    }
    return true;
}
int main(){
    getline(cin,s);
    for(int i=0;i<s.size();i++){
        s[i]=tolower(s[i]);
    }
    if(huiwen(s)) cout<<"Yes"<<endl;
    else cout<<"No"<<endl;
    return 0;
}