1071 Speech Patterns (25 分)
题解:
利用双指针 去读取字符串中的词 然后将词存放在哈希中
记录每个词出现的次数
然后输出
代码:
#include<iostream>
#include<unordered_map>
using namespace std;
unordered_map<string,int> map;
bool check(char c)
{
if(c >= 'A' && c <= 'Z') return true;
if(c >= 'a' && c <= 'z') return true;
if(c >= '0' && c <= '9') return true;
return false;
}
char get(char c)
{
if(c >= 'A' && c <= 'Z') return c + 32;
return c;
}
int main(){
string s;
getline(cin,s);
for(int i=0;i<s.size();i++){
if(check(s[i])){
string word;
int j=i;
while(j<s.size()&&check(s[j])) word += get(s[j++]);
map[word]++;
i=j;
}
}
string word;
int res=0;
for(auto i:map){
if(i.second>res||(i.second==res&&i.first<word)){
word = i.first;
res = i.second;
}
}
cout<<word<<" "<<res<<endl;
return 0;
}