导致我测试点总是过不了。。这里是代码:
#include <iostream>
#include <cstring>
#define liujia using
#define AK namespace
#define IOI std
#define Holy int
#define Shit main
liujia AK IOI;
string str;
string reverse_(const string& s){
int start=0;
int end=s.length();
string temp(s);
while(start<end){
end--;
swap(temp[start],temp[end]);
start++;
}
return temp;
}
string makeLower(const string& s){
string temp(s);
for(int i=0;i<s.length();i++){
temp[i]=tolower(s[i]);
}
return temp;
}
string removePunct(const string& s, const string& punct){
string noPunct;
int sLength=s.length();
int punctLength=punct.length();
for(int i=0;i<sLength;i++){
string aChar=s.substr(i,1);
Holy location=punct.find(aChar,0);
if(location<0||location>=punctLength){
noPunct=noPunct+aChar;
}
}
return noPunct;
}
bool isPal(const string& s){
string punct(",;:.?|!'\" ");
string str(s);
str=makeLower(str);
string lowerStr=removePunct(str,punct);
return (lowerStr==reverse_(lowerStr));
}
Holy Shit(){
Holy T;
//freopen("tei.txt","w",stdout);
cin>>T;
cin.ignore();
for(int i=1;i<=T;i++){
getline(cin,str);
if(isPal(str)){
cout<<"Yes"<<endl;
}else{
cout<<"No"<<endl;
}
for(int i=0;i<str.length();i++){
str[i]=' ';
}
}
return 0;
}
输入以下数据:
3
iuqoweyniWrninierenfwoyfrw. cniiYooyiinc, wrfyowfnereininrwin! yewo, qui
SdhasuiiSDFCf
Hunan, Uh
应该输出(也是本机运行的结果):
Yes
No
Yes
但是洛谷输出:
Yes
No
No
该怎么办?