Cracking the coding interview--Q19.2
来源:互联网 发布:清华同方录音笔软件 编辑:程序博客网 时间:2024/05/01 15:25
题目
原文:
Design an algorithm to figure out if someone has won in a game of tic-tac-toe.
译文:
设计一个算法判断某人是否赢了“井”字游戏。
解答
若只是要知道一个或少个井字的格局,只要直接遍历判断行列和对角线是否相同,然后返回赢家即可,代码如下:
class Q19_2{public static void main(String[] args){char[][] board = { {'x', 'x', 'o'}, {' ', 'x', 'o'}, {' ', ' ', 'o'}}; char result = hasWon(board); if(result == ' '){ System.out.println("No one won!"); }else{ System.out.println(result + " has won"); } }public static char hasWon(char[][] board){int type=0;int N=board.length;int i,j;//check each rowfor(i=0;i<N;i++){if(board[i][0]!=' '){for(j=1;j<N;j++){if(board[i][j]!=board[i][j-1]){break;}}if(j==N){return board[i][0];}}}//check each columnfor(j=0;j<N;j++){if(board[0][j]!=' '){for(i=1;i<N;i++){if(board[i][j]!=board[i-1][j]){break;}}if(i==N){return board[0][j];}}}//check diagonalif(board[0][0]!=' '){for(i=1;i<N;i++){if(board[i][i]!=board[i-1][i-1]){break;}}if(i==N){return board[0][0];}}//check diagonalif(board[N-1][0]!=' '){for(i=1;i<N;i++){if(board[N-i-1][i]!=board[N-i][i-1]){break;}}if(i==N){return board[N-i][0];}}return ' ';}}
---EOF---
0 0
- Cracking the coding interview--Q19.2
- Cracking the coding interview--Q19.1
- Cracking the coding interview--Q19.3
- Cracking the coding interview--Q19.4
- Cracking the coding interview--Q19.5
- Cracking the coding interview--Q19.6
- Cracking the coding interview--Q19.7
- Cracking the coding interview--Q19.8
- Cracking the coding interview--Q19.10
- Cracking the coding interview--Q19.11
- Cracking the coding interview--Q19.10
- Cracking the Coding Interview
- 《Cracking the coding interview》
- Cracking The Coding Interview
- Cracking the coding interview
- Cracking the coding interview
- Cracking the coding interview Q1.2
- Cracking the Coding Interview Chap1 Q1.2
- 甲骨文大数据两大利器
- 不靠谱创业者的15个细节
- 练习 树上的三角形
- 我要灌水
- 英语4_8
- Cracking the coding interview--Q19.2
- SQL 去掉两个表中重复的数据
- 了解函数-fread函数和fwrite函数
- 测试
- VBA读取Excel工作表数据方法探索_工作薄
- python的try语句
- 梦想,因坚持而绽放——答大学生的兴趣与行动
- 一个“高大上”的CSS3登入表单
- 深入浅出Java 重定向和请求转发的区别