(呵呵,本来不想发的,看到没人发题解,本蒟蒻就来发一下下)
其实,这道题就是一个回文串的问题,我做完了提交完了后,结果,答案错误。(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;
}