首页 > 解决方案 > 提高使用python在字符串问题中查找第一个非重复字符的效率

问题描述

我试图了解,回答这个问题的最佳方法是什么。我的尝试如下,我能够通过所有测试用例,但我不确定这是否是编写答案以及最节省时间和空间的最佳方式。

另外,我使用了 OrderedDict() ,因为我试图返回第一个字符。在这个问题中使用 OrderedDict() 而不是 dict() 是否有任何权衡?以前,我使用 dict() 尝试过这个问题,它仍然能够通过所有测试用例,但我认为情况并非总是如此,因为这本字典中的项目是无序的?

此外,由于我们正在遍历字符串 s 的每个字符,因此该解决方案的时间复杂度是否低于 O(n)?

def firstNotRepeatingCharacter(s):
    d1=OrderedDict() 
    for i in s: 
        if i not in d1: 
            d1[i]=0
        if i in d1: 
            d1[i]=d1[i]+1
    for x, y in d1.items(): 
        if y==1: 
            return x
    return "_"

标签: pythonpython-3.xdictionary

解决方案


推荐阅读