5827. 檢查操作是否合法

給你一個下標從 0 開始的 8 x 8 網格 board ,其中 board[r][c] 表示游戲棋盤上的格子 (r, c) 。棋盤上空格用 ‘.’ 表示,白色格子用 ‘W’ 表示,黑色格子用 ‘B’ 表示。

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

好線段 指的是一個包含 三個或者更多格子(包含端點格子)的線段,線段兩個端點格子為 同一種顏色 ,且中間剩余格子的顏色都為 另一種顏色 (線段上不能有任何空格子)。你可以在下圖找到好線段的例子:
在這里插入圖片描述

給你兩個整數 rMove 和 cMove 以及一個字符 color ,表示你正在執行操作的顏色(白或者黑),如果將格子 (rMove, cMove) 變成顏色 color 后,是一個 合法 操作,那么返回 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’ 分別用顏色藍色,白色和黑色表示。格子 (rMove, cMove) 用 ‘X’ 標記。
以選中格子為端點的兩個好線段在上圖中用紅色矩形標注出來了。

  • 示例 2:

輸入:board = [[".",".",".",".",".",".",".","."],[".",“B”,".",".",“W”,".",".","."],[".",".",“W”,".",".",".",".","."],[".",".",".",“W”,“B”,".",".","."],[".",".",".",".",".",".",".","."],[".",".",".",".",“B”,“W”,".","."],[".",".",".",".",".",".",“W”,"."],[".",".",".",".",".",".",".",“B”]], rMove = 4, cMove = 4, color = “W”
輸出:false
解釋:雖然選中格子涂色后,棋盤上產生了好線段,但選中格子是作為中間格子,沒有產生以選中格子為端點的好線段。

提示:

board.length == board[r].length == 8
0 <= rMove, cMove < 8
board[rMove][cMove] == ‘.’
color 要么是 ‘B’ 要么是 ‘W’ 。

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/check-if-move-is-legal
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
image.png

解題思路

根據rMove 和 cMove 以及color,從board[rMove][cMove]向8個方向遍歷,當出現遍歷到空格子的情況,就不是合法的,或者當遍歷到出現color的格子,但是線段中間沒有別的顏色,那么也不是合法。

代碼

class Solution {int[][] dir=new int[][]{{1,0},{0,1},{-1,0},{0,-1},{1,1},{-1,-1},{-1,1},{1,-1}};public boolean checkMove(char[][] board, int rMove, int cMove, char color) {for (int[] d : dir) {int x=rMove+d[0],y=cMove+d[1],len=0;boolean flag=false;while (x>=0&&x<8&&y>=0&&y<8){if (board[x][y]=='.'){break;}if (board[x][y]==color){if (len>=1)return true;break;}x=x+d[0];y=y+d[1];len++;}}return false;}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/390347.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/390347.shtml
英文地址,請注明出處:http://en.pswp.cn/news/390347.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

團隊的遠程管理_遠程團隊指南:如何管理您的遠程軟件開發團隊

團隊的遠程管理Guides to help you work remotely seem to have swept through the Internet these days. 這些天來&#xff0c;幫助您遠程工作的指南似乎席卷了Internet。 Do this, avoid that, stay productive, and all those run-of-the-mill tips we’ve already tried o…

JS 正則 錢

function ValidateIsDecial(sValue) {return (!sValue && !!!sValue && /^[0-9]{1,10}(\.[0-9]{0,2})?$/.test(sValue)); };驗證 decimal(12,2) 小數點前允許10位,小數點后允許2位 1234567890 true 12345678901 false 0123456789 true 01234567891 false 123.…

5193. 刪除字符使字符串變好

5193. 刪除字符使字符串變好 一個字符串如果沒有 三個連續 相同字符&#xff0c;那么它就是一個 好字符串 。 給你一個字符串 s &#xff0c;請你從 s 刪除 最少 的字符&#xff0c;使它變成一個 好字符串 。 請你返回刪除后的字符串。題目數據保證答案總是 唯一的 。 示例 …

2020計算機頂級大會_2020年頂級遠程調試工具

2020計算機頂級大會When it comes to debugging, the tool you use is extremely important and can determine how easy is is to fix problems within your code. 在調試方面&#xff0c;您使用的工具非常重要&#xff0c;可以確定在代碼中修復問題的難易程度。 In the earl…

BZOJ5292 洛谷4457 LOJ2513:[BJOI2018]治療之雨——題解

https://www.lydsy.com/JudgeOnline/problem.php?id5292 https://www.luogu.org/problemnew/show/P4457 https://loj.ac/problem/2513 你現在有m1個數&#xff1a;第一個為p&#xff0c;最小值為0&#xff0c;最大值為n&#xff1b;剩下m個都是無窮&#xff0c;沒有最小值或最…

PHP--------微信網頁開發實現微信掃碼功能

今天說說微商城項目中用到的掃一掃這個功能&#xff0c;分享一下&#xff0c;希望對各位有所幫助。 前提&#xff1a;要有公眾號&#xff0c;和通過微信認證&#xff0c;綁定域名&#xff0c;得到相應信息&#xff0c;appid&#xff0c;appsecret等。 微信開發文檔&#xff1a;…

313. 超級丑數

超級丑數 是一個正整數&#xff0c;并滿足其所有質因數都出現在質數數組 primes 中。 給你一個整數 n 和一個整數數組 primes &#xff0c;返回第 n 個 超級丑數 。 題目數據保證第 n 個 超級丑數 在 32-bit 帶符號整數范圍內。 示例 1&#xff1a; 輸入&#xff1a;n 12,…

初創公司股本結構_我如何向初創公司的開發團隊添加一些結構-以及從過程中學到的東西

初創公司股本結構Until recently, Id spent the last 4 years of my career at FinTech start-ups. Id always worked for smaller companies, and being at a start-up was the next logical step in looking for roles where I could make the biggest difference. 直到最近…

拿什么拯救你,我的面試之——從零打卡刷Leetcode(No.003)

寫在前邊&#xff1a;小詹一直覺得自己編程能力不強&#xff0c;想在網上刷題&#xff0c;又怕不能堅持。不知道有木有和小伙伴和小詹一樣想找個人一起刷題呢&#xff1f;歡迎和小詹一起定期刷leetcode&#xff0c;每周一周五更新一題&#xff0c;每一題都吃透&#xff0c;歡迎…

146. LRU 緩存機制

146. LRU 緩存機制 運用你所掌握的數據結構&#xff0c;設計和實現一個 LRU (最近最少使用) 緩存機制 。 實現 LRUCache 類&#xff1a; LRUCache(int capacity) 以正整數作為容量 capacity 初始化 LRU 緩存 int get(int key) 如果關鍵字 key 存在于緩存中&#xff0c;則返回…

[SQL] 請教一下 count里面有case when 一般情況下啥時候用

http://www.itpub.net/forum.php?modviewthread&tid1810967 問題: 比如 count(case when pday_id${deal_date} then 1 end) 我有點想不明白具體什么情況下count&#xff08;&#xff09; 這個小括號里面還要用case when 大家做BI統計的時候一般什么情況用啊 還有個…

路由器架設虛擬服務器讓外網訪問到本地網站

確定電腦與路由器正確連接&#xff0c;并且已連至互聯網。在地址欄中輸入192.168.0.1回車&#xff0c;輸入用戶名密碼&#xff0c;進入路由器主界面。 然后點擊左側菜單中的“虛擬服務器”&#xff0c;——“端口段映射”打開“端口段映射”界面。 由于網站用的是80端口&#x…

vue項目示例代碼git_您應該了解的5個Git命令以及代碼示例

vue項目示例代碼gitIve used Git for some years now, and I still find myself googling how to do some basic tasks. So this article is my attempt to learn how to do some of these things by writing about them. And even if I still forget, at least Ill have a ref…

413. 等差數列劃分

413. 等差數列劃分 如果一個數列 至少有三個元素 &#xff0c;并且任意兩個相鄰元素之差相同&#xff0c;則稱該數列為等差數列。 例如&#xff0c;[1,3,5,7,9]、[7,7,7,7] 和 [3,-1,-5,-9] 都是等差數列。 給你一個整數數組 nums &#xff0c;返回數組 nums 中所有為等差數組…

山羊與汽車游戲的實驗算法

實驗1&#xff1a; function shuffle(target) {var j, x, i target.length;for (; i > 0; j parseInt(Math.random() * i), x target[--i], target[i] target[j], target[j] x) {}return target }function removeAt(target, index) {return !!target.splice(index, 1).…

selenium模塊

selenium模塊 閱讀目錄 一 介紹二 安裝三 基本使用四 選擇器五 等待元素被加載六 元素交互操作七 其他八 項目練習一 介紹 selenium最初是一個自動化測試工具,而爬蟲中使用它主要是為了解決requests無法直接執行JavaScript代碼的問題selenium本質是通過驅動瀏覽器&#xff0c;完…

關閉iphone來電mac_如何在Mac和iPhone上關閉通用剪貼板切換(以及為什么要禁用此功能)

關閉iphone來電macIm about to tell you something that will shock you, and probably make you very angry. I hope you wont hate me for it. Here goes.我正要告訴您一些令您震驚的事情&#xff0c;并可能使您非常生氣。 我希望你不會為此而恨我。 開始。 If you are an i…

關于tomcat Post 數據參數的問題

2019獨角獸企業重金招聘Python工程師標準>>> POST請求本身并未限制傳入參數大小&#xff0c;是tomcat 容器設置了接收參數大小的限制。修改server.xml <Connector port"8080" protocol"HTTP/1.1" connectionTimeout"2000" red…

iOS:通信錄(完成)(18-01-18更)

1、讀取通信錄 1&#xff09;、9.0以前&#xff1a;AddressBook 2&#xff09;、9.0以后&#xff1a;Contacts 2、調用通信錄UI&#xff08;不弄&#xff09; 1&#xff09;、9.0以前&#xff1a;AddressBookUI 2&#xff09;、9.0以后&#xff1a;ContactsUI 3、參考 0、寫在前…

如何在React Native和Firebase中設置Google登錄

Google sign-in is a great login feature to offer to your apps users. It makes it easier for them to create an account and sign in. Google登錄是一項出色的登錄功能&#xff0c;可為您的應用程序用戶提供。 這使他們更容易創建帳戶并登錄。 And whats even better, F…