#!/usr/bin/env python3 # -*- coding: utf-8 -*- data = [] # parse input input_file = open("input-ex", "r") pattern = [] for line in input_file: line = line.strip() if line == "": data.append(pattern) pattern = [] else: pattern.append(line) data.append(pattern) input_file.close() ''' for i in range(len(data)): for _ in data[i]: print(_) print("================") ''' def find_vertikal_mirror(matrix): #print(type(matrix), matrix) #print(type(matrix[0]), matrix[0], len(matrix[0])) for s in range(1, len(matrix[0])): #print((len(matrix[0]))) is_mirror = True for z in matrix: #print("z",z) if s <= len(z) / 2: p1 = z[:s] p2 = z[s:] p2 = p2[:s] p2 = p2[::-1] # print("1: ",s,p1,"__",p2) else: p2 = z[s:] p1 = z[:s] p1 = p1[::-1] p1 = p1[:len(p2)] # print("2: ",s,p1,p2) if p1 != p2: is_mirror = False if is_mirror: return s return 0 def find_horizontal_mirror(matrix): new_matrix = [] for j in range(len(matrix[0])): new_matrix.append("".join([matrix[k][j] for k in range(len(matrix)-1,-1,-1)])) #for n in new_matrix: # print(n) print("_____________________") return find_vertikal_mirror(new_matrix) solution = 0 for m in data: #print(m) for mn in m: print(mn) vert = find_vertikal_mirror(m) horz = find_horizontal_mirror(m) print(vert, horz) solution += 100 * find_horizontal_mirror(m) solution += vert print("Lösung:", solution)