輸出給定字符串出現最多的字符串(小寫輸出)和出現次數。ios
所求字符串要求:字符中能夠含有A-Z、0-9。spa
好比說題目給出的Can1,咱們能夠轉換成can1,can1就算一個字符串總體,而不是單獨的取出can1裏面的can來加一。code
先把大寫字母所有轉換成小寫,而後再用map存儲單詞個數便可,簡單用法。ci
有個特殊的數據要判斷,不寫的話牛客能夠AC,可是PTA最後一組數據會報錯。字符串
特例:給出的字符串最後一個字符若是不是'0'-'9'、'a'-'z'的話,單獨算一個字符串判斷。get
for循環的時候注意判斷空字符串(空格)出現的狀況string
也能夠用sstreamstring來處理一下,均可以的io
#include<iostream> #include<string.h> #include<cmath> #include<map> using namespace std; #define inf 0x3f3f3f3f typedef long long ll; map<string,int> mp; int main() { string s; getline(cin,s); int l=s.length(); for(int i=0;i<l;i++) { if(s[i]>='A'&&s[i]<='Z') s[i]+=32; } string ss; for(int i=0;i<l;i++) { if((s[i]>='0'&&s[i]<='9')||(s[i]>='a'&&s[i]<='z')) ss+=s[i]; else if(ss!="") mp[ss]++,ss=""; } ss=s[l-1]; // 最後一個字符特判 if(!(s[l-1]>='0'&&s[l-1]<='9')||!(s[l-1]>='a'&&s[l-1]<='z')) mp[ss]++; string ans; int ma=0; for(auto&i:mp) { if(i.second>ma) ma=i.second,ans=i.first; } cout<<ans<<" "<<ma<<endl; return 0; }