关注
第二题直接搜索79% import sys
def dfs(board, x, y, last_dir, count, cls):
if count == 5:
return True
if not last_dir:
for each_dir in DIR:
temp_x = x + each_dir[0]
temp_y = y + each_dir[1]
if 0 <= temp_x < N and 0 <= temp_y < N and board[temp_x][temp_y] == cls:
rvt = dfs(board, temp_x, temp_y, each_dir, count + 1, cls)
if rvt:
return True
else:
temp_x = x + last_dir[0]
temp_y = y + last_dir[1]
if 0 <= temp_x < N and 0 <= temp_y < N and board[temp_x][temp_y] == cls:
rvt = dfs(board, temp_x, temp_y, last_dir, count + 1, cls)
if rvt:
return True
return False
if __name__ == '__main__':
N = 15
DIR = [[1, 0], [0, 1], [-1, 1], [1, 1]]
chess_board = []
for i in range(N):
temp = sys.stdin.readline().strip()
chess_board.append(temp)
count_white, count_black = 0, 0
for i in range(N):
count_white += chess_board[i].count('W')
count_black += chess_board[i].count('B')
if count_white > count_black or count_black > count_white + 1:
print("invalid board")
else:
rvt_w, rvt_b = False, False
for i in range(N):
if rvt_w:
break
for j in range(N):
if chess_board[i][j] == 'W':
rvt_w = dfs(chess_board, i, j, None, 1, 'W')
if rvt_w:
break
for i in range(N):
if rvt_b:
break
for j in range(N):
if chess_board[i][j] == 'B':
rvt_b = dfs(chess_board, i, j, None, 1, 'B')
if rvt_b:
break
if not rvt_w and not rvt_b:
if count_white + count_black == N * N:
print("draw")
else:
print("not finished")
elif rvt_w:
if count_white == count_white:
print("white win")
else:
print("invalid board")
elif rvt_b:
if count_black > count_white:
print("black win")
else:
print("invalid board")
查看原帖
2 评论
相关推荐
03-25 15:32
陕西科技大学 嵌入式软件开发 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 找工作,行业重要还是岗位重要? #
7936次浏览 104人参与
# 五一之后,实习真的很难找吗? #
46116次浏览 332人参与
# 盲审过后你想做什么? #
12754次浏览 114人参与
# 领导秒批的请假话术 #
10035次浏览 74人参与
# 外包能不能当跳板? #
22204次浏览 191人参与
# 设计人如何选offer #
98447次浏览 690人参与
# 五一假期,你打算“躺”还是“卷”? #
31279次浏览 439人参与
# 考研可以缓解求职焦虑吗 #
21262次浏览 252人参与
# 面试等了一周没回复,还有戏吗 #
115701次浏览 1075人参与
# 大疆的机械笔试比去年难吗 #
69665次浏览 603人参与
# 如果有时光机,你最想去到哪个年纪? #
43358次浏览 769人参与
# 找工作前vs找工作后的心路变化 #
7209次浏览 64人参与
# 写简历别走弯路 #
714604次浏览 7850人参与
# 应届生薪资多少才合理? #
3124次浏览 24人参与
# 你喜欢工作还是上学 #
37727次浏览 413人参与
# 硬件人,你被哪些公司给挂了 #
46759次浏览 723人参与
# 每人推荐一个小而美的高薪公司 #
72858次浏览 1357人参与
# 如果不工作真的会快乐吗 #
101284次浏览 867人参与
# 牛友们的论文几号送审 #
27282次浏览 623人参与
# 许愿池 #
271909次浏览 2849人参与