找出n个字符串中出现次数最多的字符串
  1. 找出n个字符串中出现次数最多的字符串。

C/C++:
char* find(char **data,int n);
Java:
String find(String data[]);

说明:
1. data是字符串数组,n是数组中字符串的个数,返回值为出现次数最多的字符串。
2. 若结果有多个,返回任意一个即可
3. 不得使用任何库函数/API,如需使用类似功能, 请自行实现
4. 算法效率尽可能高,尽量少的使用内存空间
5. 必须要有代码注释和算法说明。
例如:data里面的数据是{“paper”,”cup”,”book”,”cup”,”pen”,”book”}。n = 6。返回结果为”cup”或”book”。

4个回答

简单的算法,用第一个字符串与后面的所有字符串比较,记录有多少个相同。然后再第二个,第三个依次完成比较,看记录的相同个数哪个最大,就是你想要的结果。

楼上的方式,N^2的复杂度

你可以构建一棵字典树的方式,得到出现次数最多的字符串

用两个素数哈希就可以了

用两个素数哈希就可以了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐