Add a license.
[wordplay-cdsw-solutions] / solution_6_advanced.py
1 import scrabble
2
3
4 # Print the longest word where every digit is unique.
5 # I used a Set for this. Don't worry: you didn't miss anything if you don't know
6 # what a set is. We didn't teach it, but if you are reading this, you get a bonus!
7
8
9 # A set is a container like a list or a dict, except that *each element can be stored only once*.
10 # Think of it like the keys of a dict, except there isn't any value associated with each key.
11 # I use Sets to count digits below. Feel free to look up the Set online and try it in the
12 # interpreter.
13
14
15 new_words = []
16 for word in scrabble.wordlist:
17     local_chars = {}
18     if len(word) == len(set(word)):  # Wait what!? See if you can figure out why this works.
19         new_words.append(word)
20
21
22 # Reuse my code for longest (in this case, the code to track all occurences, from the 
23 # advanced solution.
24
25 longest_so_far = []
26 length_of_longest_word = 0
27
28 for word in new_words:
29     if len(word) > length_of_longest_word:
30         length_of_longest_word = len(word)
31         longest_so_far = [word]
32     elif len(word) == length_of_longest_word:
33         longest_so_far.append(word)
34
35 print longest_so_far

Benjamin Mako Hill || Want to submit a patch?