赞
踩
题意
令“单词”定义为大小写字母和数字的组合,给出一个字符串,问出现次数最多的单词机器出现的次数(一切除了大小写字母和数字之外的字符都作为单词的分隔符),其中字母不区分大小写,且最后按照小写字母输出。
思路:从给定的字符串中分割出“单词”,计数出现次数最多的单词(用map实现)
- #include<iostream>
- #include <string>
- #include <algorithm>
- #include <map>
-
- using namespace std;
-
- bool check(char c) {
- if (c >= '0' && c <= '9') return true;
- if (c >= 'A' && c <= 'Z') return true;
- if (c >= 'a' && c <= 'z') return true;
- return false;
- }
-
- void SpeechPatterns() {
- map<string, int> res;
- string str;
- getline(cin, str);
- for (int i = 0; i < str.size(); i++) {
- if (str[i] >= 'A' && str[i] <= 'Z') {
- str[i] += 32;
- }
- }
- for (int i = 0; i < str.size(); ) {
- while (!check(str[i])&& i < str.size()) {
- i++;
- }
- string temp;
- while (check(str[i])&& i < str.size()){
- temp += str[i];
- i++;
- }
- res[temp]++;
- }
- pair<string, int> ans;
- for (map<string, int>::iterator it = res.begin(); it != res.end(); it++) {
- if (ans.second < it->second) {
- ans.first = it->first;
- ans.second = it->second;
- }
- }
- cout << ans.first<<":"<<ans.second;
- }
参考资料:算法笔记上机篇P250
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。