Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Numpy & groupby solution in 3rd party category for Find Sequence by vit.aborigen
import numpy as np
from itertools import groupby
def find_most_spotted_seq(line):
return max(len(list(v)) for k, v in groupby(line))
def checkio(matrix):
for row in matrix:
if find_most_spotted_seq(row) >= 4:
return True
for column in zip(*matrix):
if find_most_spotted_seq(column) >= 4:
return True
size = len(matrix)
array = np.array(matrix)
main_diagonals = [list(array.diagonal(i)) for i in range(-size + 1, size) if len(array.diagonal(i)) > 3]
for diagonal in main_diagonals:
if find_most_spotted_seq(diagonal) >= 4:
return True
antidiagonals = [list(np.flip(array, 0).diagonal(i)) for i in range(-size + 1, size) if len(array.diagonal(i)) > 3]
for anidiagonal in antidiagonals:
if find_most_spotted_seq(anidiagonal) >= 4:
return True
return False
Nov. 19, 2018
Comments: