为什么本机运行的结果跟luogu IDE的不一样?
  • 板块灌水区
  • 楼主Trollz
  • 当前回复21
  • 已保存回复21
  • 发布时间2021/2/12 12:17
  • 上次更新2023/11/5 03:21:32
查看原帖
为什么本机运行的结果跟luogu IDE的不一样?
360591
Trollz楼主2021/2/12 12:17

导致我测试点总是过不了。。这里是代码:

#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

该怎么办?

2021/2/12 12:17
加载中...