reworked these examples a bit based on feedback in class
[wordplay-cdsw-solutions] / solution_6.py
1 import scrabble
2
3 # Print the longest word where every character is unique.
4 # I use a double loop in this. Note that I also re-use my "longest word" logic
5 # from the easy solution to (2).
6
7 # See the advanced solution for a shorter way to do this.
8
9 new_words = []
10 for word in scrabble.wordlist:
11     unique_letters = []
12     duplicated_letters = False
13     for character in word:
14         # have we seen this character before?
15         if character in unique_letters:
16             duplicated_letters = True
17         else:
18             # store the character
19             unique_letters.append(character)
20
21     if not duplicated_letters:
22         new_words.append(word)
23
24 # Reuse my code for longest word
25 longest_so_far = []
26 longest_length = 0
27 for word in new_words:
28     if len(word) > longest_length:
29         longest_so_far = [word]
30         longest_length = len(word)
31     elif len(word) == longest_length:
32         longest_so_far.append(word)
33
34 print(longest_so_far)

Benjamin Mako Hill || Want to submit a patch?