Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Use yield solution in Creative category for Find Sequence by vl.ev.ba
from collections import Counter
def victory(arr):
v, n = Counter(arr).most_common(1)[0]
return n > 3 and ' '.join([str(v)] * 4) in ' '.join(str(i) for i in arr)
def line(matr,r,c,dr,dc):
H,W=len(matr), len(matr[0])
while 0 <= r < H and 0 <= c < W:
m = matr[r][c]
r+=dr
c+=dc
yield m
return
def checkio(matrix) -> bool:
H,W=len(matrix),len(matrix[0])
for r, c in [(i, 0) for i in range(H)] +\
[(i, W - 1) for i in range(H)] +\
[(0, i) for i in range(W)] +\
[(H - 1, i) for i in range(W)]:
for dr, dc in ((0, 1), (1, 0), (1, 1), (1, -1)):
if victory(list(line(matrix, r, c, dr, dc))):
return True
return False
print(checkio([[1, 2, 1, 1], [1, 1, 4, 1], [1, 3, 1, 6], [1, 7, 2, 5]]))
Aug. 26, 2026
Comments: