生成指定編輯距離的單詞

給定一個單詞,我們也可以生成編輯距離爲K的單詞列表。 比如給定 str="apple",K=1, 可以生成“appl”, "appla", "pple"...等 下面看怎麼生成這些單詞。 還是用英文的例子來說明。 仍然假設有三種操作 - 插入,刪除,替換

def generate_edit_one(str):
    """
    給定一個字符串,生成編輯距離爲1的字符串列表。
    """
    letters    = 'abcdefghijklmnopqrstuvwxyz'
    splits = [(str[:i], str[i:])for i in range(len(str)+1)]
    inserts = [L + c + R for L, R in splits for c in letters]
    deletes = [L + R[1:] for L, R in splits if R]
    replaces = [L + c + R[1:] for L, R in splits if R for c in letters]
    
    #return set(splits)
    return set(inserts + deletes + replaces)

print (len(generate_edit_one("apple")))

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章