PAT甲级 1071(C++)

最后一个测试点过不去,看了这篇:【PAT甲级】1071 Speech Patterns (25分)_SpicyChicken的自我修养-CSDN博客

发现我代码的bug和这里面的一模一样哈哈

while循环结束后,word里可能还存储了一个单词,把它加进去就好了,用if语句判断一下:

if(word.size()!=0)
		info[word]++;

完整代码:

#include<iostream>
#include<map>
#include<string>
using namespace std;
map<string, int>info;
map<string, int>result;
int main() {
	string s; getline(cin, s);
	int index = 0;
	string word = "";
	while (index < s.size()) {
		if (isalnum(s[index]) == 0) {
			if (word.size() != 0)
				info[word]++;
			word = "";
		}
		else {
			if (isupper(s[index])) s[index] = tolower(s[index]);
			word += s[index];
		}
		index++;
	}
	if(word.size()!=0)
		info[word]++;
	int max = 0;
	for (auto it : info)
		if (it.second > max) {
			max = it.second;
			result.clear();
			result[it.first] = it.second;
		}
		else if (it.second == max) result[it.first] = it.second;
	int count = 0;
	for(auto it:result){
		count++;
		cout << it.first << " " << it.second;
		if (count != result.size()) cout<<" ";
	}
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值