1071. Speech Patterns (25)

来源:互联网 发布:资治通鉴和史记 知乎 编辑:程序博客网 时间:2024/06/01 08:39

1. 原题: https://www.patest.cn/contests/pat-a-practise/1071

2. 思路:

题意:
词频统计题。输出一行字符串中出现频率最高的单词及次数(不区分大小写)。
思路:
先把字符串保存到string s里,
然后遍历每个字符,不是字母或数字,置为空格。
然后把s读入字符串流ss里,输出每个单词,插入map。
其中map的key是单词,value是次数。
最后输出即可。
已AC。

3. 源码:

#include<iostream>#include<string>#include<sstream>//使用字符串流, 用于转换成单词#include<cctype>//使用iisalnum函数, 判断是否字母或数字#include<map>using namespace std;int main(void){//freopen("in.txt", "r", stdin);string s;getline(cin, s);//读入一行for (int i = 0; i < s.size(); i++){s[i] = tolower(s[i]);//转换成小写if (!isalnum(s[i]))s[i] = ' ';//无效字符,置为空格}string re;//保存结果的单词int cnt = 0;map<string, int> word;stringstream ss(s);//字符串流sswhile (ss >> s)//字符串流一次读出一个单词,遇到空格截止。{if (word.count(s) == 0)word[s] = 0;word[s]++;if (cnt < word[s])//记录最大次数{cnt = word[s];re = s;}else if (cnt == word[s] && s < re)re = s;}cout << re << ' ' << cnt << endl;return 0;}


1 0
原创粉丝点击