def permutationString(word):
print('word', word)
result = []
if len(word) == 0:
result.append('')
return result
for i in range(len(word)):
before = word[0 : i]
after = word[i + 1 :]
print('before',before)
print('after', after)
partials = permutationString(before + after)
print(partials)
for s in partials:
result.append(word[i] + s)
return result
Это мое решение для генерации перестановки для данной строки.
Для ввода abc
он дает мне ['abc', 'acb', 'bac', 'bca', 'cab', 'cba']
, что кажется правильным.
У меня вопрос, я не очень понимаю, как работает магия.Сам код довольно интуитивно понятен;мы просто пытаемся каждый символ в качестве первого символа, а затем добавляем перестановки.
Но я действительно не понимаю, как генерируется partials
, и я не уверен, как решение не работает, когда мы не делаемделать result.append('')
, когда word
пусто.
Есть ли интуитивное объяснение того, как работает магия?