pat1071
题目链接
https://pintia.cn/problem-sets/994805342720868352/problems/994805398257647616
题目类型:模拟+字符串
提交记录
- 第一次WA:没有考虑到末尾字符也会造成中止,后来加一个特判就行。当然也可以使用快慢指针
- 第二次WA:题目要求字典序较小排序。
- 总结:
Pat要自己编数据试一试
c++代码
#include <iostream>
#include <unordered_map>
using namespace std;
unordered_map<string,int> st;
int main()
{
string cen;
getline(cin,cen);
string res;
for (int i=0;i<cen.size();i++)
{
if ((cen[i]>='0'&&cen[i]<='9')||(cen[i]>='a'&&cen[i]<='z')||(cen[i]>='A'&&cen[i]<='Z'))
{
if(cen[i]>='A'&&cen[i]<='Z')
{
cen[i] = cen[i] -('A'-'a');
}
res+= cen[i];
}
else{
if(res!="")
{
st[res]++;
res = "";
}
}
if(i == cen.size()-1&&res!="") st[res]++;
}
pair<string,int> len = {"",0};
for (auto s:st)
{
if(s.second>len.second)
{
len.first = s.first;
len.second = s.second;
}
else if (s.second==len.second)
{
if(s.first<len.first)
{
len.first = s.first;
len.second = s.second;
}
}
}
cout<<len.first<<" "<<len.second<<endl;
return 0;
}