将相同字符串组合在一起的最佳算法是什么?

new*_*erl 0 algorithm

每种排序算法都是工作,但它是一个OVERKILL.

对于输入如:

aa
cc
aa
bb
dd
bb
cc
Run Code Online (Sandbox Code Playgroud)

我只需要这样的东西:

aa
aa
cc
cc
bb
bb
dd
Run Code Online (Sandbox Code Playgroud)

不需要每个模式的顺序.

这种工作有这样的算法吗?

Nol*_*rin 6

您只想在这里使用哈希表,或者更抽象地使用关联数组.迭代输入,将其添加到哈希表中,如果尚未看到,则将值(标签,如果您愿意)添加为1,或者如果哈希表中已存在,则将计数递增1.

因此,算法在时间和空间上都是O(n),这与你可以合理预期的一样好.我建议阅读一些哈希表,因为它是一种非常有用的数据结构,出现在算法和软件设计的各种各样的地方.