subtree(users/wpcarro): docking briefcase at '24f5a642'
git-subtree-dir: users/wpcarro git-subtree-mainline:464bbcb15cgit-subtree-split:24f5a642afChange-Id: I6105b3762b79126b3488359c95978cadb3efa789
This commit is contained in:
commit
019f8fd211
766 changed files with 175420 additions and 0 deletions
|
|
@ -0,0 +1,19 @@
|
|||
# permutations: no repeat characters
|
||||
|
||||
def char_and_rest(i, xs):
|
||||
return xs[i], xs[0:i] + xs[i + 1:]
|
||||
|
||||
def permutations(xs):
|
||||
if len(xs) == 1:
|
||||
return [xs]
|
||||
result = []
|
||||
for c, rest in [char_and_rest(i, xs) for i in range(len(xs))]:
|
||||
result += [c + perm for perm in permutations(rest)]
|
||||
return result
|
||||
|
||||
expected = ["cat", "cta", "act", "atc", "tca", "tac"]
|
||||
result = permutations("cat")
|
||||
print(result, expected)
|
||||
assert len(result) == len(expected)
|
||||
assert result == expected
|
||||
print("Success!")
|
||||
Loading…
Add table
Add a link
Reference in a new issue