问题标题: 酷町堂:2661

0
0
已解决
武建豪
武建豪
中级天翼
中级天翼

2661   找字符经验值:1200

蜀山区2009年信息学竞赛试题

不许抄袭,一旦发现,直接清空经验!

题目描述 Description

有一天,小明编了一个程序,能很快找出一个字符串中出现次数最多的字符,你能做到吗?

输入描述 Input Description

一个字符串(长度不超过50)

输出描述 Output Description

按字符在字符串中出现的先后顺序,显示出现次数最多的字符

样例输入 Sample Input

ACABBCCDDB

样例输出 Sample Output

CB

思路或者其他的


0
已采纳
程祺然
程祺然
初级光能
初级光能

呕吼,我来啦!!!

1.定义一个桶变量和一个最大值变量 maxn

2.定义一个字符串变量 s

3.遍历字符串 s,桶计数 b[s[i]]++ 并用 maxn 进行对比 b[s[i]] 和 maxn

4.再次遍历字符串 s,如果 (b[s[i]]==maxn),输出 s[i],再将 b[s[i]] 清零(这点很重要)

完美AC(代码不用贴了吧,都讲得很明白了)

0
0
江见匀
江见匀
新手光能
新手光能

  for(int i=0;i<a.length();i++){
        b[(int)a[i]]++;
    }
    for(int i=0;i<a.length();i++){
        mx=max(mx,b[a[i]]);
    }
    for(int i=0;i<a.length();i++){
        if(b[a[i]]==mx){
            cout<<a[i];
            b[a[i]]=0;
        }
    }

简简单单,直观明了

我要回答