17x17 の問題を確認するための一般的なプログラムを作成しようとしていました。、単色の長方形のない a17x17 グリッドの 4 色。ソリューション リンク: 17.txt。
これは私が書いたものです:
from itertools import product
def is_solution(myfile,m,n):
""" m-lines, n-columns """
grid = [c.strip() for c in line.split(',')] for line in open(myfile).readlines()]
for x0,y0 in product(xrange(m),xrange(n)):
start = grid[x0][y0]
for x in xrange(x0+1,m):
if grid[x][y0] == start:
for y in xrange(y0+1,n):
if grid[x0][y] == start == grid[x][y]:
return False
return True
print is_solution('17.txt',17,17)
これを書くためのより読みやすく、簡潔で効率的な方法 (優先順位で) はありますか? 異なるデータ構造を持つ別のアプローチかもしれません...私は現在Pythonを学んでいるので、どんなアドバイスも大歓迎です。