Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Uncategorized category for Find Sequence by Kurush
def checkio(data):
for i in range(len(data)):
for j in range(len(data)):
Hor = True
Ver = True
MainDiag = True
RevDiag = True
for k in range(1, 4):
if (i < len(data) - 3):
Ver = Ver and (data[i + k][j] == data[i][j])
else: Ver = False
if (j < len(data) - 3):
Hor = Hor and (data[i][j + k] == data[i][j])
else: Hor = False
if (i < len(data) - 3) and (j < len(data) - 3):
MainDiag = MainDiag and (data[i + k][j + k] == data[i][j])
else: MainDiag = False
if (i > 2) and (j < len(data) - 3):
RevDiag = RevDiag and (data[i - k][j + k] == data[i][j])
else: RevDiag = False
if Hor or Ver or MainDiag or RevDiag:
return True
return False
#These "asserts" using only for self-checking and not necessary for auto-testing
if __name__ == '__main__':
assert checkio([
[1, 2, 1, 1],
[1, 1, 4, 1],
[1, 3, 1, 6],
[1, 7, 2, 5]
]) == True, "Vertical"
assert checkio([
[7, 1, 4, 1],
[1, 2, 5, 2],
[3, 4, 1, 3],
[1, 1, 8, 1]
]) == False, "Nothing here"
assert 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]
]) == True, "Long Horizontal"
assert 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"
May 21, 2013