PAT 1071【STL string应用】
1.单case很多清空没必要的
2.string+ char 最好用pushback
3.string +string就直接+
#include <bits/stdc++.h> using namespace std; typedef long long LL; const int N=2e6+10; map<string, int> mp; string temp,res; int num; string s; int n; bool Judge(char x) { if(x>='0'&&x<='9') return true; if(x>='A'&&x<='Z') return true; if(x>='a'&&x<='z') return true; return false; } int main() { getline(cin,s); n=s.length(); bool flag = true; int ans=0; //mp.clear(); temp = ""; for(int i=0;i<n;i++) { if(s[i]>='A'&&s[i]<='Z') s[i] = s[i] + 'a' - 'A'; if(Judge(s[i])) { temp.push_back(s[i]);//temp = temp + s[i]; flag=true; } else { num = temp.length(); if(num) { mp[temp]++; if(mp[temp]>ans) { ans = mp[temp]; res = temp; } temp = ""; flag = false; } } } if(flag) { mp[temp]++; if(mp[temp]>ans) { ans = mp[temp]; res = temp; } } cout<<res<<" "<<ans<<endl; return 0; }