In [29]:
import csv
import numpy as np
string_list = []
with open('inputs/input5.txt', 'rt') as f_input:
csv_reader = csv.reader(f_input)
for line in csv_reader:
string_list += line
In [30]:
def vowel_rule(s):
vowels = list('aeiou')
n = len([digit for digit in list(s) if digit in vowels])
if n >= 3:
return True
return False
def two_in_a_row_rule(s):
for i in range(len(s) - 1):
if s[i] == s[i+1]:
return True
return False
def forbidden_rule(s):
for item in ['ab', 'cd', 'pq', 'xy']:
if item in s:
return False
return True
def nice_string(s):
if forbidden_rule(s):
if vowel_rule(s) and two_in_a_row_rule(s):
return True
return False
In [31]:
len([s for s in string_list if nice_string(s)])
Out[31]:
In [60]:
def two_twice(s):
for i in range(len(s) - 3):
if s[i:i+2] in s[i+2:]:
return True
return False
def one_leap(s):
for i in range(len(s) - 2):
if s[i] == s[i+2]:
return True
return False
def nicest_string(s):
return two_twice(s) and one_leap(s)
In [61]:
len([s for s in string_list if nicest_string(s)])
Out[61]:
In [ ]: