gpt4 book ai didi

C - 返回字符指针数组中重复次数最多/出现次数最多的字符串

转载 作者:太空宇宙 更新时间:2023-11-04 01:10:09 25 4
gpt4 key购买 nike

我几乎已经完成了这个问题的代码,我将声明如下:

给定:

长度为“n”的数组(假设 n = 10000)声明如下,

     char **records = malloc(10000*sizeof(*records));

每条record[i]都是一个char指针,指向一个非空字符串。

     records[i] = malloc(11);

字符串是固定长度的(10 个字符 + '\0')。

要求:

返回上述数组中出现频率最高的字符串。

但是现在,我有兴趣获得一种比我目前拥有的原始算法稍微不那么残酷的算法,即在两个 for 循环中筛选整个数组:(,将两个循环遇到的字符串存储在一个临时的用于与下一个字符串进行比较的相似大小的数组('n' - 如果所有字符串都是唯一的字符串)。内循环从'外循环位置 + 1' 迭代到'n'。同时,我有一个整数数组,大小相似 - 'n',用于计算重复出现次数,每个第 i 元素对应于第 i th 比较数组中的(唯一)字符串。然后找到最大的整数并使用它在比较数组中的索引返回最常出现的字符串。

希望我说得够清楚了。我自己对算法感到很惭愧,但必须这样做。我相信在 C 中有更聪明的方法来做到这一点。

祝你有个愉快的星期天,

干杯!

最佳答案

如果不擅长好的算法(谷歌、维基百科和 Stackoverflow 对我来说已经足够好了),我想到的一个解决方案是对数组进行排序,然后使用一个循环遍历条目。只要当前字符串与前一个字符串相同,就增加该字符串的计数器。完成后,您将获得一个字符串及其出现的“列表”,然后可以根据需要对其进行排序。

关于C - 返回字符指针数组中重复次数最多/出现次数最多的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14179966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com