誰かが次の pheudocode を理解するのを手伝ってくれませんか?
countWords(vertex, word, missingLetters)
k=firstCharacter(word)
if isEmpty(word)
return vertex.words
else if notExists(edges[k]) and missingLetters=0
return 0
else if notExists(edges[k])
cutLeftmostCharacter(word)
return countWords(vertex, word, missingLetters-1)
//Here we cut a character but we don't go lower in the tree
else
//We are adding the two possibilities: the first
//character has been deleted plus the first character is present
r=countWords(vertex, word, missingLetters-1)
cutLeftmostCharacter(word)
r=r+countWords(edges[k], word, missingLetters)
return r
アイデアは、Trieを使用して単語が辞書に表示される回数を見つけようとしているということですが、文字が欠落している可能性があります。
私はそのelse
部分で迷っています。ロジックがわかりません。
たとえば、単語の最初の文字が一致する場合、最後にヒットしてから同じレベルでelse
再帰しますが、それは同一のループではありませんか? つまり、同じレベルの最初の文字などを再度比較しますか?
誰かがこれを理解するのを手伝ってくれませんか?countWords
missingLetters-1