In [11]:
import numpy as np
def valid_passphrase(l):
counter = np.array([l.count(v) for v in l])
return len(counter[counter == 1]) == len(l)
In [12]:
import csv
valid_counter = 0
with open('input.txt', 'rt') as f_input:
csv_reader = csv.reader(f_input, delimiter=' ')
solution = sum([valid_passphrase(line) for line in csv_reader])
solution
Out[12]:
In [13]:
import itertools
from collections import Counter
def anagram(s, t):
return Counter(list(s)) == Counter(list(t))
def valid_passphrase_anagram(l):
for i, s in enumerate(l):
for t in l[i+1:]:
if anagram(s, t):
return False
return True
In [14]:
import csv
valid_counter = 0
with open('input.txt', 'rt') as f_input:
csv_reader = csv.reader(f_input, delimiter=' ')
solution = sum([valid_passphrase_anagram(line) for line in csv_reader])
solution
Out[14]:
In [ ]: