Я попытался реализовать алгоритм в «Программируемых интервью» в Python, как показано ниже, но, похоже, он не работает (стр. 99 во 2-м издании):
Идея состоит в том, чтобыгенерировать все комбинации (не перестановки) строки, например, если вы введете «wxyz», вы получите «w, wx, wxy, wxyz, wxz, wy, wyz, wz ....» и т. д., если отображается wzzw недействителен.
def doCombine(strng, out, length, level, start):
for i in range(start, length):
out.append(strng[i])
print out
if (i < length - 1):
doCombine(strng, out, length, level +1, i + 1)
out = out[:-1]
x = list()
target = "wxyz"
print doCombine(target, x, len(target), 0, 0)
Что здесь может быть не так?Я получаю относительно мусор.