forked from cdubz/advent-of-code-2017
-
Notifications
You must be signed in to change notification settings - Fork 0
/
passphrases_part_two.py
39 lines (30 loc) · 1.12 KB
/
passphrases_part_two.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
"""
--- Part Two ---
For added security, yet another system policy has been put in place. Now, a
valid passphrase must contain no two words that are anagrams of each other -
that is, a passphrase is invalid if any word's letters can be rearranged to
form any other word in the passphrase.
For example:
abcde fghij is a valid passphrase.
abcde xyz ecdab is not valid - the letters from the third word can be
rearranged to form the first word.
a ab abc abd abf abj is a valid passphrase, because all letters need to be
used when forming another word.
iiii oiii ooii oooi oooo is valid.
oiii ioii iioi iiio is not valid - any of these words can be rearranged to
form any other word.
Under this new system policy, how many passphrases are valid?
"""
total = 0
invalid = 0
with open('input.txt') as f:
for phrase in f:
total += 1
letter_groups = []
for word in phrase.strip().split(' '):
letters = sorted(list(word))
if letters in letter_groups:
invalid += 1
break
letter_groups.append(letters)
print(total - invalid)