【发布时间】:2017-02-22 00:27:37
【问题描述】:
给出了一个字符串列表,我们必须打印出唯一的字符串。唯一字符串是在字符串列表中不重复的字符串。
Ex li = [ram,raj,ram,dev,dev]
unique string = raj.
我想到了一种算法。
首先对 String 数组进行排序,然后检查相邻的字符串是否相等,然后向前移动,否则它是唯一的字符串。 但是这里对字符串数组进行排序的时间复杂度非常高。
任何人都可以帮助我找到比我的算法更有效的算法吗? 提前致谢。
【问题讨论】:
-
制作一个频率计数器(可能只是一个哈希图)来计算每个字符串的出现次数(线性时间)。然后只打印出那些具有单例计数的字符串(线性时间)
-
感谢@inspectorG4dget。我明白了。
-
从选择一种语言开始。
-
@shmosel 我使用 java 进行编码。我也在问题中标记了 python 和 c++,因为我想知道有效的算法而不是代码。如果我得到有效的算法,我可以用任何语言编写代码。这个问题也将发布在 python 和 c++ 社区中,我可以从不同的编码人员那里获得最佳解决方案。主要有竞争力的程序员用 C++ 编写代码。
标签: java python c++ string algorithm