annotate combinations_permutations/phone_to_words/solution.py @ 0:20fea762903e

Import some exercises and solutions
author Louis Opter <kalessin@kalessin.fr>
date Sat, 29 Jun 2013 19:30:31 -0700
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
20fea762903e Import some exercises and solutions
Louis Opter <kalessin@kalessin.fr>
parents:
diff changeset
1 #!/usr/bin/env python
20fea762903e Import some exercises and solutions
Louis Opter <kalessin@kalessin.fr>
parents:
diff changeset
2
20fea762903e Import some exercises and solutions
Louis Opter <kalessin@kalessin.fr>
parents:
diff changeset
3 def d2l(digit):
20fea762903e Import some exercises and solutions
Louis Opter <kalessin@kalessin.fr>
parents:
diff changeset
4 return {
20fea762903e Import some exercises and solutions
Louis Opter <kalessin@kalessin.fr>
parents:
diff changeset
5 "2": "abc",
20fea762903e Import some exercises and solutions
Louis Opter <kalessin@kalessin.fr>
parents:
diff changeset
6 "3": "def",
20fea762903e Import some exercises and solutions
Louis Opter <kalessin@kalessin.fr>
parents:
diff changeset
7 "4": "ghi",
20fea762903e Import some exercises and solutions
Louis Opter <kalessin@kalessin.fr>
parents:
diff changeset
8 "5": "jkl",
20fea762903e Import some exercises and solutions
Louis Opter <kalessin@kalessin.fr>
parents:
diff changeset
9 "6": "mno",
20fea762903e Import some exercises and solutions
Louis Opter <kalessin@kalessin.fr>
parents:
diff changeset
10 "7": "pqrs",
20fea762903e Import some exercises and solutions
Louis Opter <kalessin@kalessin.fr>
parents:
diff changeset
11 "8": "tuv",
20fea762903e Import some exercises and solutions
Louis Opter <kalessin@kalessin.fr>
parents:
diff changeset
12 "9": "wxyz"
20fea762903e Import some exercises and solutions
Louis Opter <kalessin@kalessin.fr>
parents:
diff changeset
13 }[digit]
20fea762903e Import some exercises and solutions
Louis Opter <kalessin@kalessin.fr>
parents:
diff changeset
14
20fea762903e Import some exercises and solutions
Louis Opter <kalessin@kalessin.fr>
parents:
diff changeset
15 def p2w(number):
20fea762903e Import some exercises and solutions
Louis Opter <kalessin@kalessin.fr>
parents:
diff changeset
16 if len(number) == 1:
20fea762903e Import some exercises and solutions
Louis Opter <kalessin@kalessin.fr>
parents:
diff changeset
17 return [letter for letter in d2l(number)]
20fea762903e Import some exercises and solutions
Louis Opter <kalessin@kalessin.fr>
parents:
diff changeset
18 letters = d2l(number[0])
20fea762903e Import some exercises and solutions
Louis Opter <kalessin@kalessin.fr>
parents:
diff changeset
19 acc = []
20fea762903e Import some exercises and solutions
Louis Opter <kalessin@kalessin.fr>
parents:
diff changeset
20 for i in letters:
20fea762903e Import some exercises and solutions
Louis Opter <kalessin@kalessin.fr>
parents:
diff changeset
21 acc.extend([i + s for s in p2w(number[1:])])
20fea762903e Import some exercises and solutions
Louis Opter <kalessin@kalessin.fr>
parents:
diff changeset
22 return acc
20fea762903e Import some exercises and solutions
Louis Opter <kalessin@kalessin.fr>
parents:
diff changeset
23
20fea762903e Import some exercises and solutions
Louis Opter <kalessin@kalessin.fr>
parents:
diff changeset
24 print(p2w("23"))
20fea762903e Import some exercises and solutions
Louis Opter <kalessin@kalessin.fr>
parents:
diff changeset
25 print(p2w("234"))