A1071 Speech Patterns 🔥🔥🔥
💙content
https://pintia.cn/problem-sets/A1071
🐶【Map】
❗️issue
words are case insensitive
⭐️solution
!!!key!!!—>
for(int i = 0; i != s.length(); i++){
if(isalnum(s[i])){
s[i] = tolower(s[i]);
t += s[i];
}
if(!isalnum(s[i]) || i == s.length() - 1){
if(t.length() != 0) m[t]++;
t ="";
}
}
isalnum() ----> judge one character from the set [0-9 A-Z a-z]
getline(cin , s); ----> input text terminated by a carriage return '\n’
tolower() ----> to lower the character
map<string , int>---->count
💻 code
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s , t;
getline(cin , s);
map<string , int> m;
for(int i = 0; i != s.length(); i++){
if(isalnum(s[i])){
s[i] = tolower(s[i]);
t += s[i];
}
if(!isalnum(s[i]) || i == s.length() - 1){
if(t.length() != 0) m[t]++;
t ="";
}
}
int maxn = 0;
for(auto it = m.begin(); it != m.end(); it++){
if(it->second > maxn){
t = it->first;
maxn = it->second;
}
}
cout <<t<< " " <<maxn<< endl;
return 0;
}