首页 > 代码库 > PAT 1071. Speech Patterns
PAT 1071. Speech Patterns
又是考输入输出
#include <cstdio>#include <cstdlib>#include <string>#include <vector>#include <unordered_map>#include <algorithm>using namespace std;char buf[1048577];bool is_alphanumerical(char &ch) { if (ch >= ‘0‘ && ch <= ‘9‘) return true; if (ch >= ‘a‘ && ch <= ‘z‘) return true; if (ch >= ‘A‘ && ch <= ‘Z‘) { ch += ‘a‘ - ‘A‘; return true; } return false;}int main() { char ch; bool inword = false; int wpos = 0; int max_count = -1; unordered_map<string, int> count; vector<string> maxs; while(ch = getchar()) { bool isan = is_alphanumerical(ch); if (isan) { if (!inword) { // new word begin wpos = 0; inword = true; } // append character buf[wpos++] = ch; } else { if (inword) { // current word end buf[wpos] = ‘\0‘; string word(buf); auto iter = count.find(word); if (iter == count.end()) { iter = count.insert(make_pair(word, 0)).first; } if (++(iter->second) > max_count) { max_count = iter->second; maxs.clear(); maxs.push_back(word); } else if (iter->second == max_count) { maxs.push_back(word); } inword = false; } } if (ch == ‘\n‘) { break; } } sort(maxs.begin(), maxs.end()); int mcount = count.find(maxs[0])->second; printf("%s %d", maxs[0].c_str(), mcount); return 0;}
PAT 1071. Speech Patterns
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。