给定一个r行c列的棋盘,给定一个点x,y,要求判断点(x,y)处是否可以放置棋子。
判断越界时不能转化成一维判断越界,判断越界必须在二维空间中进行。
r, c = 3, 3
a = [0] * (r * c)
def right_legal(x, y):
return r > x >= 0 and c > y >= 0 and a[x * c + y] == 0
def wrong_legal(x, y):
p = x * c + y
return r * c > p >= 0 and a[p] == 0
print(right_legal(0, 4))#False,不合法,已经越界了
print(wrong_legal(0, 4))#True,合法,转化成一维后相当于(1,3)点