长沙官网网站制作公司,青岛做视频的网站,网站制作 flash 修改,平台设计什么意思文章目录 一、题目二、C# 题解 一、题目 设计一个算法#xff0c;判断玩家是否赢了井字游戏。输入是一个 N x N 的数组棋盘#xff0c;由字符 #xff0c;“X和O组成#xff0c;其中字符” 代表一个空位。 以下是井字游戏的规则#… 文章目录 一、题目二、C# 题解 一、题目 设计一个算法判断玩家是否赢了井字游戏。输入是一个 N x N 的数组棋盘由字符 “X和O组成其中字符” 代表一个空位。 以下是井字游戏的规则
玩家轮流将字符放入空位 中。第一个玩家总是放字符O且第二个玩家总是放字符X。X和O只允许放置在空位中不允许对已放有字符的位置进行填充。当有N个相同且非空的字符填充任何行、列或对角线时游戏结束对应该字符的玩家获胜。当所有位置非空时也算为游戏结束。如果游戏结束玩家不允许再放置字符。 如果游戏存在获胜者就返回该游戏的获胜者使用的字符“X或O”如果游戏以平局结束则返回 “Draw”如果仍会有行动游戏未结束则返回 “Pending”。
示例 1 输入 board [“O X”, XO,“X O”] 输出 “X” 示例 2 输入 board [“OOX”,“XXO”,“OXO”] 输出 “Draw” 解释 没有玩家获胜且不存在空位 示例 3 输入 board [“OOX”,“XXO”,OX ] 输出 “Pending” 解释 没有玩家获胜且仍存在空位 提示
1 board.length board[i].length 100输入一定遵循井字棋规则 点击此处跳转题目。
二、C# 题解 循环依次判断即可
public class Solution {public string Tictactoe(string[] board) {int N board.Length;char leftUp board[0][0], rightUp board[0][N - 1], row, col;bool leftUpB true, rightUpB true, rowB, colB, draw true;for (int i 0; i N; i) {row board[i][0];col board[0][i];rowB colB true;if (board[i][i] ! leftUp) leftUpB false; // 左上-右下对角检查if (board[i][N - i - 1] ! rightUp) rightUpB false; // 右上-左下对角检查for (int j 0; j N; j) {if (board[i][j] ) draw false; // 空白字符检查if (board[i][j] ! row) rowB false; // 行检查if (board[j][i] ! col) colB false; // 列检查}if (rowB row ! ) return row.ToString();if (colB col ! ) return col.ToString();}if (leftUpB leftUp ! ) return leftUp.ToString();if (rightUpB rightUp ! ) return rightUp.ToString();if (draw) return Draw;return Pending;}
}时间80 ms击败 100.00% 使用 C# 的用户内存37.90 MB击败 100.00% 使用 C# 的用户