日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Leetcode周赛5827. 检查操作是否合法

發(fā)布時(shí)間:2025/3/19 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Leetcode周赛5827. 检查操作是否合法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目描述

給你一個(gè)下標(biāo)從?0?開(kāi)始的?8 x 8?網(wǎng)格?board?,其中?board[r][c]?表示游戲棋盤(pán)上的格子?(r, c)?。棋盤(pán)上空格用?'.'?表示,白色格子用?'W'?表示,黑色格子用?'B'?表示。

游戲中每次操作步驟為:選擇一個(gè)空格子,將它變成你正在執(zhí)行的顏色(要么白色,要么黑色)。但是,合法?操作必須滿(mǎn)足:涂色后這個(gè)格子是?好線(xiàn)段的一個(gè)端點(diǎn)?(好線(xiàn)段可以是水平的,豎直的或者是對(duì)角線(xiàn))。

好線(xiàn)段?指的是一個(gè)包含?三個(gè)或者更多格子(包含端點(diǎn)格子)的線(xiàn)段,線(xiàn)段兩個(gè)端點(diǎn)格子為?同一種顏色?,且中間剩余格子的顏色都為?另一種顏色?(線(xiàn)段上不能有任何空格子)。你可以在下圖找到好線(xiàn)段的例子:

給你兩個(gè)整數(shù)?rMove?和?cMove?以及一個(gè)字符?color?,表示你正在執(zhí)行操作的顏色(白或者黑),如果將格子?(rMove, cMove)?變成顏色?color?后,是一個(gè)?合法?操作,那么返回?true?,如果不是合法操作返回?false?。

示例 1:

輸入:board = [[".",".",".","B",".",".",".","."],[".",".",".","W",".",".",".","."],[".",".",".","W",".",".",".","."],[".",".",".","W",".",".",".","."],["W","B","B",".","W","W","W","B"],[".",".",".","B",".",".",".","."],[".",".",".","B",".",".",".","."],[".",".",".","W",".",".",".","."]], rMove = 4, cMove = 3, color = "B" 輸出:true 解釋:'.','W' 和 'B' 分別用顏色藍(lán)色,白色和黑色表示。格子 (rMove, cMove) 用 'X' 標(biāo)記。 以選中格子為端點(diǎn)的兩個(gè)好線(xiàn)段在上圖中用紅色矩形標(biāo)注出來(lái)了。

示例 2:

輸入:board = [[".",".",".",".",".",".",".","."],[".","B",".",".","W",".",".","."],[".",".","W",".",".",".",".","."],[".",".",".","W","B",".",".","."],[".",".",".",".",".",".",".","."],[".",".",".",".","B","W",".","."],[".",".",".",".",".",".","W","."],[".",".",".",".",".",".",".","B"]], rMove = 4, cMove = 4, color = "W" 輸出:false 解釋:雖然選中格子涂色后,棋盤(pán)上產(chǎn)生了好線(xiàn)段,但選中格子是作為中間格子,沒(méi)有產(chǎn)生以選中格子為端點(diǎn)的好線(xiàn)段。

?解題代碼

class Solution {public static void main(String[] args) {// write your code here}public boolean checkMove(char[][] board, int rMove, int cMove, char color) {if (color == 'B') {return check(board, rMove, cMove, 'B', 'W');} else {return check(board, rMove, cMove, 'W', 'B');}}public boolean check(char[][] board, int x, int y, char startColor, char midColor) {final char KONG = '.';// 判斷八個(gè)方向是否有好線(xiàn)段// 1. 向右if (x <= 5 && board[x + 1][y] == midColor) {for (int i = x + 2; i <= 7; i++) {if (board[i][y] == startColor) {//第一種情況,找到了端點(diǎn)return true;} else if (board[i][y] == KONG) {//第二種情況。發(fā)現(xiàn)了空,線(xiàn)段不成。break;}// 第三種情況,找到了中間顏色,繼續(xù)向下。}}// 2. 向左if (x >= 2 && board[x - 1][y] == midColor) {for (int i = x - 2; i >= 0; i--) {if (board[i][y] == startColor) {//第一種情況,找到了端點(diǎn)return true;} else if (board[i][y] == KONG) {//第二種情況。發(fā)現(xiàn)了空,線(xiàn)段不成。break;}// 第三種情況,找到了中間顏色,繼續(xù)向下。}}// 3. 向上if (y >= 2 && board[x][y - 1] == midColor) {for (int i = y - 2; i >= 0; i--) {if (board[x][i] == startColor) {//第一種情況,找到了端點(diǎn)return true;} else if (board[x][i] == KONG) {//第二種情況。發(fā)現(xiàn)了空,線(xiàn)段不成。break;}// 第三種情況,找到了中間顏色,繼續(xù)向下。}}// 4. 向下if (y <= 5 && board[x][y + 1] == midColor) {for (int i = y + 2; i <= 7; i++) {if (board[x][i] == startColor) {//第一種情況,找到了端點(diǎn)return true;} else if (board[x][i] == KONG) {//第二種情況。發(fā)現(xiàn)了空,線(xiàn)段不成。break;}// 第三種情況,找到了中間顏色,繼續(xù)向下。}}// 5. 向右下if (y <= 5 && x <= 5 && board[x + 1][y + 1] == midColor) {for (int i = 2; x + i <= 7 && y + i <= 7; i++) {if (board[x + i][y + i] == startColor) {//第一種情況,找到了端點(diǎn)return true;} else if (board[x + i][y + i] == KONG) {//第二種情況。發(fā)現(xiàn)了空,線(xiàn)段不成。break;}// 第三種情況,找到了中間顏色,繼續(xù)向下。}}// 6. 向左下if (y <= 5 && x >=2 && board[x - 1][y + 1] == midColor) {for (int i = 2; x -i >=0&& y + i <= 7; i++) {if (board[x - i][y + i] == startColor) {//第一種情況,找到了端點(diǎn)return true;} else if (board[x - i][y + i] == KONG) {//第二種情況。發(fā)現(xiàn)了空,線(xiàn)段不成。break;}// 第三種情況,找到了中間顏色,繼續(xù)向下。}}// 7. 向右上if (y >=2 && x <= 5 && board[x + 1][y - 1] == midColor) {for (int i = 2; x + i <= 7 && y - i >=0; i++) {if (board[x + i][y - i] == startColor) {//第一種情況,找到了端點(diǎn)return true;} else if (board[x + i][y - i] == KONG) {//第二種情況。發(fā)現(xiàn)了空,線(xiàn)段不成。break;}// 第三種情況,找到了中間顏色,繼續(xù)向下。}}// 8. 向左上if (y >=2 && x >=2 && board[x - 1][y - 1] == midColor) {for (int i = 2; x - i >=0 && y - i >=0; i++) {if (board[x - i][y - i] == startColor) {//第一種情況,找到了端點(diǎn)return true;} else if (board[x - i][y - i] == KONG) {//第二種情況。發(fā)現(xiàn)了空,線(xiàn)段不成。break;}// 第三種情況,找到了中間顏色,繼續(xù)向下。}}return false;}}

總結(jié)

以上是生活随笔為你收集整理的Leetcode周赛5827. 检查操作是否合法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 大奶一区二区 | 亚洲第一激情 | 少妇人妻综合久久中文字幕 | 国产精品久久久久久久久久辛辛 | 亚洲日本韩国在线 | 国产午夜一级一片免费播放 | 91老女人 | 国产在线视频不卡 | 九一网站在线观看 | 四虎精品永久在线 | se欧美 | 中国二级毛片 | 偷看洗澡一二三区美女 | 五月天一区二区三区 | 亚洲欧美另类中文字幕 | 黄毛片在线观看 | 久久色资源网 | 亚洲三级国产 | 成人亚洲网 | 国产久视频 | 福利社区一区二区 | 小柔好湿好紧太爽了国产网址 | 欧美三区四区 | 97色伦影院| 九一毛片 | 暖暖成人免费视频 | 97精品一区二区三区 | 国产成人一区二区三区视频 | 天堂成人在线视频 | 欧美日韩亚洲视频 | 免费精品在线观看 | 精品视频一二三 | 张津瑜国内精品www在线 | 中文字幕亚洲国产 | 精品人妻一区二区三区香蕉 | 日韩av综合| 国语一区| 亚洲女人的天堂 | 爱啪啪av | 冲田杏梨一区二区三区 | 日韩精品系列 | 撸大师av | 午夜啪啪福利 | 天天精品 | 精品动漫一区二区三区在线观看 | 成人免费在线 | 一区二区三区黄色录像 | 黄色a在线观看 | 欧美成人片在线观看 | 玖玖精品国产 | 男插女av | 国产swag在线观看 | 全国男人天堂网 | 毛片网站在线 | 中文字幕日韩欧美一区二区三区 | 欧美亚洲另类小说 | 天天曰天天操 | 国产精品久久久av | 182av| 久久er99热精品一区二区 | 日韩人妻无码一区二区三区 | 国产一区视频在线免费观看 | 国产内谢 | 青青青国产在线 | 国产女女调教女同 | 无码人妻精品一区二区三区不卡 | 国产高清第一页 | 精品一区二区久久久久久久网站 | 国产小视频在线看 | 91免费进入| 国产剧情久久 | 二区三区偷拍浴室洗澡视频 | 日韩一区视频在线 | 人妻少妇一区 | 免费一级全黄少妇性色生活片 | 男女视频久久 | 国产成人在线免费 | av免费网址在线观看 | 黄网站在线免费 | 怡红院av久久久久久久 | 国产五月天婷婷 | 在线毛片网站 | 亚洲网站在线播放 | 一二三四区视频 | 东方伊甸园av在线 | 毛片a级片 | 欧美性免费 | 综合欧美亚洲 | 亚洲深夜视频 | 天天撸天天操 | 丝袜在线一区 | 6080一级片| 国产视频在线观看一区二区 | 欧美日韩免费做爰视频 | 亚洲最大的成人网 | 亚洲国产日本 | 日韩一级大片 | 男女超爽视频免费播放 | 亚洲高潮av |