PAT 1071 Speech Patterns (25 分)

mac2026-02-06  0

#include <map> #include <iostream> using namespace std; map<string,int>mp; //字符合法才能算单词 bool check(char c) { if(c>='0'&&c<='9') return true; else if(c>='A'&&c<='Z') return true; else if(c>='a'&&c<='z') return true; return false; } int main() { string str; getline(cin,str); int i=0; while(i<str.length()) { string word; //字符合法 while(i<str.length()&&check(str[i])==true) { //大写字母全部转换为小写 if(str[i]>='A'&&str[i]<='Z') str[i]+=32; word+=str[i]; i++; } //单词不为空,统计单词数量 if(word!="") { if(mp.find(word)==mp.end()) mp[word]=1; else mp[word]++; } while(i<str.length()&&check(str[i])==false) i++; } string ans; int MAX=0; for(map<string,int>::iterator it=mp.begin();it!=mp.end();it++) { if(it->second>MAX) { MAX=it->second; ans=it->first; } } cout<<ans<<" "<<MAX<<endl; return 0; }
最新回复(0)