PAT A1071

原题:https://pintia.cn/problem-sets/994805342720868352/problems/994805398257647616
强行过了一波,一开始又是最后一个case没通过,后来发现是最后一个单词只有一个字母且后面没有符号的情况有问题,所以在第二个for后面又加了一个if判断条件,代码可读性比较差,有时间重新写一个版本

#include<string>
#include<map>
#include<iostream>
#include<cctype>
#include<algorithm>
using namespace std;
bool cmp(pair<string,int> p1,pair<string,int> p2)
{
    if(p1.second==p2.second)
    return p1.first<p2.first;
    else
    return p1.second>p2.second;
}
int main()
{
    string s,ss;
    getline(cin,s);
    int len=s.size(),start=-1,end=0;
    map<string,int> mp;
    for(int i=0;i<len;i++)
    {
        if(s[i]>='A'&&s[i]<='Z')
        s[i]=tolower(s[i]);
    }
    for(int i=0;i<len;i++)
    {
        if((!isalnum(s[i])&&start!=-1))
        {
            end=i;
            ss=s.substr(start,end-start);
            //cout<<ss<<endl;
            start=-1;
            if(mp.count(ss)==0)
            mp[ss]=1;
            else
            mp[ss]+=1;
            continue;
        }
        if(isalnum(s[i])&&start==-1)
        {
            start=i;
            continue;
        }
    }
    if(start!=-1&&isalnum(s[len-1]))
        {
            end=len;
            ss=s.substr(start,end-start);
            //cout<<ss<<endl;
            start=-1;
            if(mp.count(ss)==0)
            mp[ss]=1;
            else
            mp[ss]+=1;
        }
    int max=-1;
    string temp;
    for(map<string,int>::iterator it=mp.begin();it!=mp.end();it++)
    {
        if(max<it->second)
        {
            max=it->second;
            temp=it->first;
            continue;
        }
        if(max==it->second&&it->first<temp)
        {
            temp=it->first;
        }
    }
    cout<<temp<<" "<<max<<endl;
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 怎样将情法办,只好从新审判。 承诺都成谎言,爱我说完不算。
    琴诗音阅读 1,792评论 0 4
  • 丹说:不经意间流露的往往是最真实的想法。 今夜翻开你的空间才发现 原来在那我不知道的过去 我曾欢喜于你。 2017...
    小人物也有梦想阅读 2,833评论 0 0
  • 遇见了山花烂漫 呼吸着林子的气味 萤火虫在飞 地上的人儿在清喃 故乡早已成为老去的模样 青春的脸上也挂满了白霜 年...
    fred_37阅读 1,346评论 0 0
  • 有个渔夫拥有一流的捕鱼技术,被人们尊称为“渔王”。然而晚年的渔王却非常苦恼,因为他的三个儿子的捕鱼技巧都很平庸。虎...
    小英成长手札阅读 1,846评论 2 4

友情链接更多精彩内容