700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > NowCoder最近爱上了五子棋 现在给你一个棋局 请你帮忙判断其中有没有五子连珠(超过

NowCoder最近爱上了五子棋 现在给你一个棋局 请你帮忙判断其中有没有五子连珠(超过

时间:2021-08-21 04:36:14

相关推荐

NowCoder最近爱上了五子棋 现在给你一个棋局 请你帮忙判断其中有没有五子连珠(超过

NowCoder最近爱上了五子棋,现在给你一个棋局,请你帮忙判断其中有没有五子连珠(超过五颗也算)。

解析:

import java.util.*;public class Main {static int[][] direction = {{0, 1}, {0, - 1}, {1, 0}, { - 1, 0}, {1, 1}, {1, - 1}, { - 1, 1}, { - 1, - 1}};public static void main(String[] args) {Scanner sc = new Scanner(System.in);while (sc.hasNext()) {Character[][] map = new Character[20][20];for (int i = 0; i < 20; i ++ ) {String s = sc.next();for (int j = 0; j < 20; j ++ ) {map[i][j] = s.charAt(j);}}if(check(map)) System.out.println("Yes");else System.out.println("No");}}public static boolean check(Character[][] map) {for (int i = 0; i < 20; i ++ ) {for (int j = 0; j < 20; j ++ ) {if(map[i][j] == '*' || map[i][j] == '+') {for (int k = 0; k < 8; k ++ ) {int count = 1;int x = i + direction[k][0];int y = j + direction[k][1];while (x >= 0 && x < 20 && y >= 0 && y < 20 && map[x][y] == map[i][j]) {count ++ ;x += direction[k][0];y += direction[k][1];}if(count == 5) return true;}}}}return false;}}

NowCoder最近爱上了五子棋 现在给你一个棋局 请你帮忙判断其中有没有五子连珠(超过五颗也算)。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。