在String中查找重复字符(解决方案必须小于O(n ^ 2)

时间:2015-09-12 14:02:41

标签: arrays string

如果我们遍历每个字符的字符串数组并与其他字符进行比较,我们会发现重复,但那是O(n ^ 2)

我需要一些想法,不到O(n ^ 2)

让我们说输入字符串是:好书,然后 输出将是:o

1 个答案:

答案 0 :(得分:0)

迭代所有字符并将它们存储到HashMap中,其中键是字符本身,值是nay(字符,true,integer,..)。在将字符添加到哈希映射之前,检查它是否已经存在,如果存在,那么如果不插入则重复它

这是一个pesudo代码

for character char in String
    if charactersMap.get(char) == null
        charactersMap.put(char, char)
    else
        print C

此解决方案为O(n),因为它会迭代字符一次,并且在地图中查找关键字需要一段时间。