【发布时间】:2013-01-06 06:38:04
【问题描述】:
我已经差不多完成了这个问题的代码,我将陈述如下:
鉴于:
长度为'n'(比如n = 10000)的数组声明如下,
char **records = malloc(10000*sizeof(*records));
每条记录[i]都是一个char指针,指向一个非空字符串。
records[i] = malloc(11);
字符串是固定长度的(10 个字符 + '\0')。
要求:
返回上述数组中出现频率最高的字符串。
但是现在,我有兴趣获得一种比我目前拥有的原始算法稍微不那么残酷的算法,即在两个 for 循环中筛选整个数组:(,将两个循环遇到的字符串临时存储在类似大小的数组('n' - 如果都是唯一字符串)用于与下一个字符串进行比较。内部循环从 'outer loop position + 1' 迭代到 'n em>'。同时,我有一个大小相似的整数数组 - 'n',用于计算重复出现次数,每个 i th 元素对应于第 i th em>(唯一)比较数组中的字符串。然后找到最大的整数,并使用它在比较数组中的索引返回最常出现的字符串。
我希望我足够清楚。我自己对算法感到很羞耻,但必须这样做。我相信在 C 中有更聪明的方法来做到这一点。
祝你周日愉快,
干杯!
【问题讨论】:
-
供将来参考:如果
sizeof char不等于1,则说明您没有C 编译器。 -
我总是忘记丢弃它!感谢您指出。
标签: c string similarity