标题:输入一组字符串,输出出现次数最多的字符串及其个数
取消只看楼主
AsherAla
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2021-1-21
结帖率:100%
已结贴  问题点数:10 回复次数:3 
输入一组字符串,输出出现次数最多的字符串及其个数
输入一个整数n(1 <= n <= 100)
然后输入n个字符串(长度 <= 1000 ,字符为小写)
例如:
输入:
3
aaa
bb
bb
输出:
bb 2
搜索更多相关主题的帖子: 次数 个数 输出 输入 字符串 
2021-01-21 14:01
AsherAla
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2021-1-21
得分:0 
回复 2楼 rjsp
啊 要是这么说就简单化了
2021-01-21 15:48
AsherAla
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2021-1-21
得分:0 
回复 2楼 rjsp
这是从一组数中找重复出现的
程序代码:
#include"stdio.h"
#include"string.h"
int main()
{
    int n;
    while(~scanf("%d", &n))
    {
        int s[10001] = {0}, num, max = 0, count = 0;
        for(int i = 0; i < n; ++ i)
        {
            scanf("%d", &num);
            s[num] ++;
            //printf("%d %d\n", num, s[num]);
            if(max <= s[num])
            {
                if(count < num && s[num] == max)
                {
                    count = num;
                    continue;
                }
                if(s[num] > max)
                {
                max = s[num];
                count = num;    
                }
            }
        } 
        printf("%d %d\n", count, max);
    }
    return 0;
}

用这个数组下标法怎么做字符串的?
2021-01-21 20:27
AsherAla
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2021-1-21
得分:0 
以下是引用rjsp在2021-1-22 09:02:47的发言:

你这代码我看不懂,
起先就看不懂, while(~scanf("%d", &n)) 这是要连续输入吗?可题目中只说输入一次;
最严重的是 int s[10001],这个 10001 是哪里来的?是你自己限定输入范围不超过10000吗?任何算法都跟数据范围相关,你不能将一个限定数据范围极小的算法适用于正常范围。

 题目交代“(长度 <= 1000 ,字符为小写)”,那么数据范围就是 0 到 26的1000次方,你开一个 26的1000次方 的数组就行了。26的1000次方 大约是 9.4*10×1414,这个宇宙容不下,本宇宙所有粒子一共才 3.28×10^80个。
如果不要求 下标索引,而只要求比较快速索引的话,可以用 红黑树 或 哈希表 之类的算法。不过,你为了这么个小程序去写红黑树/哈希表的话,类似大炮打蚊子。


你这代码我看不懂,
起先就看不懂, while(~scanf("%d", &n)) 这是要连续输入吗?


这个代码其实是其他题目的,我就是想问这种思路行不行,貌似不行,就是字符串范围太大了。 非常感谢~\
while(~scanf("%d", &n)); 这个就是一个输入框架,就是可以连续输入测试,可以不用退出。
2021-01-22 10:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-504686-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012946 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved