公司动态

2026华为OD面试题035:竖直四子棋

📅 2026/7/23 23:00:25
2026华为OD面试题035:竖直四子棋
题目描述竖直四子棋的棋盘是竖立起来的,红蓝双方轮流选一列下子,棋子靠重力落到棋盘底部或者已有棋子之上。一列放满后,这一列就不能再下了。任意一方的 4 个棋子在横、竖或斜方向连成一线就获胜。给定棋盘宽W、高H,以及红蓝双方的下子步骤序列,判断谁在第几步获胜,或者出现非法落子。第 1 步是红方,第 2 步蓝方,第 3 步红方,以此类推。每个步骤是一个列编号,最左列编号为 1,往右递增。输出规则:红方获胜,输出N,red蓝方获胜,输出N,blue出现非法落子(列编号超出1..W,或该列已满),输出N,error所有步骤下完都没人赢也没出错,输出0,draw其中N是出问题的那一步的序号(1 开始)。一旦赢了或出错了就立刻停止,后面的步骤不再处理。举例:W=4 H=4,步骤1 2 1 2 1 2 1。红方走第 1、3、5、7 步全下第 1 列,第 7 步红方在第 1 列竖着连成 4 子,输出7,red。原题文件在输出描述处截断(没有给出示例和 draw 的处理),这里按常见题型补全:补充了 draw 输出0,draw,并补了一个竖向四连的示例。