私はインターネットでいくつかのプログラミングの問題に答えていましたが、この問題に興味があります。問題は次のように定義されます。
このコードは、文字列のすべての順列を辞書順に出力します。何かがおかしい。1行を変更または追加して、見つけて修正してください!
入力:
入力は、間にスペースを入れない小文字の文字列を含む 1 行で構成されます。その長さは最大 7 文字で、その文字は辞書順にソートされています。
出力:
文字列のすべての順列が各行に 1 つずつ出力され、辞書式にリストされています。
def permutations():
global running
global characters
global bitmask
if len(running) == len(characters):
print(''.join(running))
else:
for i in xrange(len(characters)):
if ((bitmask>>i)&1) == 0:
bitmask |= 1<<i
running.append(characters[i])
permutations()
running.pop()
raw = raw_input()
characters = list(raw)
running = []
bitmask = 0
permutations()
誰かが私に答えて、それがどのように機能するかを説明できますか? 私はビットマスキングのアプリケーションにあまり詳しくありません。ありがとうございました。