PythonでFind Sequence
コード
import math def check_hc(matrix,option): if option == 1: matrix = zip(*matrix) s = [x for i in matrix for x in i] for i in range(len(s)-3): if s[i] == s[i+1] == s[i+2] == s[i+3]: return 1 else: return 0 def check_Diagonal(matrix,option): if option == 1: rev_s = [] for i in matrix: i.reverse() rev_s.append(i) else: matrix = rev_s s = [x for i in matrix for x in i] t = int(math.sqrt(len(s))) for i in range((t**2)-(3*t)-3): if s[i] == s[i+t+1] == s[i+(t*2)+2] ==s[i+(t*3)+3]: return 1 else: return 0 def checkio(matrix): b = [0,0,0,0] b[0] = check_hc(matrix,0) #check horizon b[1] = check_hc(matrix,1) #check certical b[2] = check_Diagonal(matrix,0) #check diagonal L-> b[3] = check_Diagonal(matrix,1) #check diagonal R-> if sum(b) > 0: print "OKOK" else: print "NONO" print "---------------------" if __name__ == '__main__': # checkio([[7, 1, 1, 8, 1, 1],[1, 1, 7, 3, 1, 5], [2, 3, 1, 2, 5, 1],[1, 1, 1, 5, 1, 4],[4, 6, 5, 1, 3, 1],[1, 1, 9, 1, 2, 1]])# == True, "Diagonal" # checkio([[1, 2, 1, 1],[1, 1, 4, 1],[1, 3, 1, 6],[1, 7, 2, 5]])# == True, "Vertical" # checkio([[2, 1, 1, 6, 1],[1, 3, 2, 1, 1],[4, 1, 1, 3, 1],[5, 5, 5, 5, 5],[1, 1, 3, 1, 1]]) # checkio([[7, 1, 4, 1],[1, 2, 5, 2],[3, 4, 1, 3],[1, 1, 8, 1]]) # checkio([[2,7,6,2,1,5,2,8,4,4],[8,7,5,8,9,2,8,9,5,5],[5,7,7,7,4,1,1,2,6,8],[4,6,6,3,2,7,6,6,5,1],[2,6,6,9,8,5,5,6,7,7],[9,4,1,9,1,3,7,2,3,1],[5,1,4,3,6,5,9,3,4,1],[6,5,5,1,7,7,8,2,1,1],[9,5,7,8,2,9,2,6,9,3],[8,2,5,7,3,7,3,8,6,2]]) # checkio([[2,6,2,2,7,6,5],[3,4,8,7,7,3,6],[6,7,3,1,2,4,1],[2,5,7,6,3,2,2],[3,4,3,2,7,5,6],[8,4,6,5,2,9,7],[5,8,3,1,3,7,8]]) # checkio([[1,9,7,8,9,3,6,5,6,2],[4,9,4,8,3,4,8,8,5,9],[2,8,5,5,7,8,6,1,3,6],[6,4,7,6,9,1,4,5,7,8],[4,7,7,9,8,8,8,8,4,4],[3,7,3,2,1,9,1,8,9,1],[4,7,2,4,8,1,2,3,6,2],[4,4,1,3,3,3,9,2,6,7],[8,6,1,9,3,5,8,1,7,5],[7,3,6,5,3,6,6,4,8,2]]) checkio([[2,3,6,5,6,2,8,3,7,4],[6,9,5,9,7,6,8,5,1,6],[6,8,2,6,1,9,3,6,6,4],[5,8,3,2,3,8,7,4,6,4],[2,3,1,4,5,1,2,5,6,9],[5,4,8,7,5,5,8,4,9,5],[9,7,9,9,5,9,9,8,1,2],[5,1,7,4,8,3,4,1,8,8],[5,3,3,2,6,1,4,3,8,8],[4,8,1,4,5,8,8,7,4,7]])