蒟蒻求助QAQ 为什么样例能过但是全是WA
查看原帖
蒟蒻求助QAQ 为什么样例能过但是全是WA
290373
no5zo4mi1楼主2021/8/6 15:17

兄弟姐妹们

为什么5个点全部WA

明明样例还是能过的QAQ

是不是输入的问题? 本蒟蒻不是很能看得懂题解大佬们有关要输入两个getline的解释

#include<iostream>
#include<string>
using namespace std;
string a,b;
bool isLetter(char s){//判断是否是字母
	if(s>='a'&&s<='z'||s>='A'&&s<='Z') return true;
	return false;
}
char toUpper(char s){
	if(s>='a'&&s<='z') return s+'A'-'a';
	else return s;
}
char solve(char s,int t){//翻译翻译
	if(s+t>'Z') return s+t-26;
	if(s+t<'A') return s+t+26;
	return s+t;
}
int letterCount[1000];
string result="";//result存结果
int main(){
	for(int i=int('A');i<=int('Z');i++) letterCount[i]=0;
	string s;
	while(getline(cin,s)){//每次读入一行
		if(s=="START"||s=="END") continue;
		if(s=="ENDOFINPUT") break;
		for(int i=0;i<s.length();i++){//统计字母出现的次数
			if(isLetter(s[i])){
				s[i]=toUpper(s[i]);
				letterCount[int(s[i])]++;
			}
		}
		result.append(s);//将每一句话存入result
} 
	int max=-1;
	int maxLetter;
	for(int i='A';i<='Z';i++){//计算最多的字母
		if(letterCount[i]>max){
			max=letterCount[i];
			maxLetter=i;
		}
	}
	int t='E'-maxLetter;//计算偏移量
	for(int i=0;i<result.length();i++){
		if(isLetter(result[i])) result[i]=solve(result[i],t);//将所有字母根据偏移量进行翻译
	}
	cout<<result<<endl;
	return 0;
}

2021/8/6 15:17
加载中...