我怎么能让这个单词匹配algo更高效的python

时间:2016-10-20 10:39:28

标签: python sorting dictionary edx

字母和频率的字典d表示类似于拼字游戏的游戏中的手牌。如果word中的字母包含在d中,则频率会更改或字母被删除(如果值== 0)且函数update返回True,否则d不变,函数返回'False':

d = {'a': 1, 'p': 2, 'c': 1, }

dCopy = d.copy()

matching_lets = 0


def update():

    for let in word:
        if not let in dCopy:
            return False
        else:
            if dCopy[let] == 1:
                del dCopy[let]
            else: 
                dCopy[let] -= 1
    d = dCopy
    return True 

word = 'pap'
print update()

这是EDX课程MITx 6.00.1,计算机科学导论和使用Python编程的问题集5的一部分

1 个答案:

答案 0 :(得分:1)

鉴于您的问题,

Python中没有更快的解决方案dict()hashmap相同,因此您的update函数的平均大小写复杂度为O(|word_length| + |dict_length|),其中word_length是给定单词中的字符数dict_length 1}}是你的字典中键值对的数量。

注意:@khelwood对于d = dCopy是正确的。弄清楚如何自己解决这个问题。

相关问题