[プログラマー]コレクション辞書


出典:プログラマーコードテスト練習、[プログラマー]コレクション辞書

に答える


1. ['A', 'E', 'I', 'O', 'U']の順序で深さ優先探索を行った.
2.長さが5の場合は探索を停止する.
3.すべての単語の数が少ないので、バイナリを検索するのではなく、最初に探し始めた単語と同じように、同じタイミングですぐに答えを返すようにしましょう.

コード#コード#

def solution(word):
    words = []
    def make_word(w):
        if len(w) == 5:
            return
        for alp in ['A', 'E', 'I', 'O', 'U']:
            new = w + alp
            words.append(new)
            make_word(new)

    make_word('')
    
    for i in range(len(words)):
        if words[i] == word:
            return i + 1

に感銘を与える


他の人の解では,多くの解がビット数ごとにメタ音が現れる場合の式を用いて探索されず,直接返される.語彙の量が大きい場合は、式を書き出して解きます.公式を頭で考えるのではなく、手帳や紙に考えを書いてください.