#!python3
#-*- coding:utf-8 -*-
'''
在4x4的棋盘上摆满了黑白棋子,黑白两色的位置和数目随机其中左上角坐标为(1,1),右下角坐标为(4,4),现在依次有一些翻转操作,
要对一些给定支点坐标为中心的上下左右四个棋子的颜色进行翻转,请计算出翻转后的棋盘颜色。
给定两个数组A和f,分别为初始棋盘和翻转位置。其中翻转位置共有3个。请返回翻转后的棋盘。
测试样例:
[[0,0,1,1],[1,0,1,0],[0,1,1,0],[0,0,1,0]],[[2,2],[3,3],[4,4]]
返回:[[0,1,1,1],[0,0,1,0],[0,1,1,0],[0,0,1,0]]
'''
class Flip:
def flipChess(self, A, f):
# write code here
def not_color(A, x, y):
if A[x][y]:
A[x][y] = 0
else:
A[x][y] = 1
def set1(A, x, y):
y -= 1
if y >= 0:
not_color(A, x, y)
def set2(A, x, y):
x += 1
if x <= 3:
not_color(A, x, y)
def set3(A, x, y):
y += 1
if y <= 3:
not_color(A, x, y)
def set4(A, x, y):
x -= 1
if x >= 0:
not_color(A, x, y)
for xy in f:
x = xy[0]-1
y = xy[1]-1
set1(A, x, y)
set2(A, x, y)
set3(A, x, y)
set4(A, x, y)
return A
if __name__ == '__main__':
""
A = [[0, 0, 1, 1], [1, 0, 1, 0], [0, 1, 1, 0],
[0, 0, 1, 0]]
f = [[2, 2], [3, 3], [4, 4]]
f1 = Flip()
f1.flipChess(A, f)
招聘编程题0x02
最新推荐文章于 2021-05-27 15:16:34 发布