码迷,mamicode.com
首页 > 其他好文 > 详细

入门oj 5499: 讲话模式

时间:2020-05-23 14:49:27      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:迭代器   data   char   简单的   std   ring   get   简单   请求   

Description

每个人说话都有口头禅,现给出一个字符串,请求出其中出现次数最多的单词(不区分大小写)。

Input

输入一行,长度小于等于1048576的字符串
输入至少包含一个字母或数字

Output

输出一行,为出现次数最多的单词及出现的次数,用空格分开
如果结果不唯一,则输出字典序最小的那个,这个单词必须以小写的形式输出。

Sample Input

Can a can can a can? It can !

Sample Output

can 5

HINT

1简单的一个map题

2这个题的读入比较恶心,需要转大小写,还要判空格和标点,具体方法如代码

#include<bits/stdc++.h>
using namespace std;
int f[1000001],ans;
char s[1048579];
map<string,int> a;
map<string,int>::iterator flag;//迭代器 
int main(){
    gets(s);
    int len=strlen(s);
    string q="";
    for(int i=0;i<len;i++){
        
        if(s[i]== ) {
            a[q]++;                
            q="";
            continue;
        }//判空格,如果是空格那么就表示一个单词结束了,可以把这个单词打入map 
        if(s[i]>=A&&s[i]<=Z) s[i]+=32;//大写转小写 
        if(s[i]>=a&&s[i]<=z) q+=s[i]//如果这个字符是一个字母,就把他放入q串 ;
    }
    for(map<string,int>::iterator i=a.begin();i!=a.end();i++)    //迭代器 
        if(ans<(*i).second)
            flag=i,ans=(*flag).second;        //算出最大值    
    cout<<(*flag).first<<" "<<(*flag).second;
} 

 

入门oj 5499: 讲话模式

标签:迭代器   data   char   简单的   std   ring   get   简单   请求   

原文地址:https://www.cnblogs.com/cwjr/p/12942397.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!