最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

go語(yǔ)言LeetCode題解999可以被一步捕獲的棋子數(shù)

 更新時(shí)間:2022年12月28日 10:11:07   作者:劉09k11  
這篇文章主要為大家介紹了go語(yǔ)言LeetCode題解999可以被一步捕獲的棋子數(shù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

題目描述

999. 可以被一步捕獲的棋子數(shù) - 力扣(LeetCode)

在一個(gè) 8 x 8 的棋盤上,有一個(gè)白色的車(Rook),用字符 'R' 表示。棋盤上還可能存在空方塊,白色的象(Bishop)以及黑色的卒(pawn),分別用字符 '.','B''p' 表示。不難看出,大寫字符表示的是白棋,小寫字符表示的是黑棋。

車按國(guó)際象棋中的規(guī)則移動(dòng)。東,西,南,北四個(gè)基本方向任選其一,然后一直向選定的方向移動(dòng),直到滿足下列四個(gè)條件之一:

  • 棋手選擇主動(dòng)停下來(lái)。
  • 棋子因到達(dá)棋盤的邊緣而停下。
  • 棋子移動(dòng)到某一方格來(lái)捕獲位于該方格上敵方(黑色)的卒,停在該方格內(nèi)。
  • 車不能進(jìn)入/越過(guò)已經(jīng)放有其他友方棋子(白色的象)的方格,停在友方棋子前。

你現(xiàn)在可以控制車移動(dòng)一次,請(qǐng)你統(tǒng)計(jì)有多少敵方的卒處于你的捕獲范圍內(nèi)(即,可以被一步捕獲的棋子數(shù))。

示例 1:

輸入:[[".",".",".",".",".",".",".","."],[".",".",".","p",".",".",".","."],[".",".",".","R",".",".",".","p"],[".",".",".",".",".",".",".","."],[".",".",".",".",".",".",".","."],[".",".",".","p",".",".",".","."],[".",".",".",".",".",".",".","."],[".",".",".",".",".",".",".","."]]
輸出:3
解釋:
在本例中,車能夠捕獲所有的卒。

示例 2:

輸入:[[".",".",".",".",".",".",".","."],[".","p","p","p","p","p",".","."],[".","p","p","B","p","p",".","."],[".","p","B","R","B","p",".","."],[".","p","p","B","p","p",".","."],[".","p","p","p","p","p",".","."],[".",".",".",".",".",".",".","."],[".",".",".",".",".",".",".","."]]
輸出:0
解釋:
象阻止了車捕獲任何卒。

示例 3:

輸入:[[".",".",".",".",".",".",".","."],[".",".",".","p",".",".",".","."],[".",".",".","p",".",".",".","."],["p","p",".","R",".","p","B","."],[".",".",".",".",".",".",".","."],[".",".",".","B",".",".",".","."],[".",".",".","p",".",".",".","."],[".",".",".",".",".",".",".","."]]
輸出:3
解釋: 
車可以捕獲位置 b5,d6 和 f5 的卒。

提示:

board.length == board[i].length == 8

board[i][j] 可以是 'R','.','B' 或 'p'

只有一個(gè)格子上存在 board[i][j] == 'R'

思路分析

這道題首先要理解題意

  • 如果沒(méi)有阻擋,車可以無(wú)限移動(dòng),除非自己停止
  • 遇到象,停止。停止的意思是不能向前,但可以向后
  • 遇到邊,停止。停止的意思是不能向前,但可以向后
  • 遇到卒,吃掉,然后在這個(gè)方向上必須停止。

解題方法,先整理

  • 去掉沒(méi)用的信息
  • 把二維問(wèn)題轉(zhuǎn)為一維問(wèn)題。

AC 代碼

/**
 * @param {character[][]} board
 * @return {number}
 */
var numRookCaptures = function (board) {
  let count = 0
  let info = []
  for (let i = 0; i < 8; i++) {
    let item = []
    for (let j = 0; j < 8; j++) {
      if ('.' !== board[i][j]) {
        item.push(board[i][j])
      }
    }
    item.length > 0 && info.push(item)
  }
  for (let j = 0; j < 8; j++) {
    let item = []
    for (let i = 0; i < 8; i++) {
      if ('.' !== board[i][j]) {
        item.push(board[i][j])
      }
    }
    item.length > 0 && info.push(item)
  }
  //整理好后的info是個(gè)一維數(shù)組
  for (let item of info) {
    let index = item.indexOf('R')
    if (index < 0) continue
    let i = index
    while (i--) {
      if (item[i] === 'B') break;
      if (item[i] === 'p') {
        count++
        break
      }
    }
    i = index + 1
    while (i < item.length) {
      if (item[i] === 'B') break;
      if (item[i] === 'p') {
        count++
        break
      }
      i++
    }
  }
  return count
};

以上就是go語(yǔ)言LeetCode題解999可以被一步捕獲的棋子數(shù)的詳細(xì)內(nèi)容,更多關(guān)于go 一步捕獲的棋子數(shù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • golang如何使用gos7讀取S7200Smart數(shù)據(jù)

    golang如何使用gos7讀取S7200Smart數(shù)據(jù)

    文章介紹了如何使用Golang語(yǔ)言的Gos7工具庫(kù)讀取西門子S7200Smart系列PLC的數(shù)據(jù),通過(guò)指定數(shù)據(jù)塊號(hào)、起始字節(jié)偏移量和數(shù)據(jù)長(zhǎng)度,可以精確讀取所需的數(shù)據(jù),感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • Go語(yǔ)言壓縮和解壓縮tar.gz文件的方法

    Go語(yǔ)言壓縮和解壓縮tar.gz文件的方法

    這篇文章主要介紹了Go語(yǔ)言壓縮和解壓縮tar.gz文件的方法,實(shí)例分析了使用Go語(yǔ)言壓縮文件與解壓文件的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • 在go中進(jìn)行單元測(cè)試的案例分享

    在go中進(jìn)行單元測(cè)試的案例分享

    這篇文章主要介紹了使用Go進(jìn)行單元測(cè)試的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • Golang中的自定義類型之間的轉(zhuǎn)換的實(shí)現(xiàn)(type conversion)

    Golang中的自定義類型之間的轉(zhuǎn)換的實(shí)現(xiàn)(type conversion)

    這篇文章主要介紹了Golang中的自定義類型之間的轉(zhuǎn)換的實(shí)現(xiàn)(type conversion),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • 詳解Go 語(yǔ)言中的比較操作符

    詳解Go 語(yǔ)言中的比較操作符

    這篇文章專注于 6 個(gè)操作符,==,!=,<,<=,> 和 >=。我們將深入探討它們的語(yǔ)法和用法的細(xì)微差別,感興趣的朋友跟隨腳本之家小編一起看看吧
    2018-08-08
  • 詳解Go語(yǔ)言如何使用標(biāo)準(zhǔn)庫(kù)sort對(duì)切片進(jìn)行排序

    詳解Go語(yǔ)言如何使用標(biāo)準(zhǔn)庫(kù)sort對(duì)切片進(jìn)行排序

    Sort?標(biāo)準(zhǔn)庫(kù)提供了對(duì)基本數(shù)據(jù)類型的切片和自定義類型的切片進(jìn)行排序的函數(shù)。今天主要分享的內(nèi)容是使用?Go?標(biāo)準(zhǔn)庫(kù)?sort?對(duì)切片進(jìn)行排序,感興趣的可以了解一下
    2022-12-12
  • golang 實(shí)現(xiàn)兩個(gè)結(jié)構(gòu)體復(fù)制字段

    golang 實(shí)現(xiàn)兩個(gè)結(jié)構(gòu)體復(fù)制字段

    這篇文章主要介紹了golang 實(shí)現(xiàn)兩個(gè)結(jié)構(gòu)體復(fù)制字段,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • Go語(yǔ)言中的switch用法實(shí)例分析

    Go語(yǔ)言中的switch用法實(shí)例分析

    這篇文章主要介紹了Go語(yǔ)言中的switch用法,實(shí)例分析了switch的功能及使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • CentOS7使用yum安裝Golang的超詳細(xì)步驟

    CentOS7使用yum安裝Golang的超詳細(xì)步驟

    CentOS默認(rèn)并沒(méi)有安裝golang運(yùn)行環(huán)境,下面這篇文章主要給大家介紹了關(guān)于CentOS7使用yum安裝Golang的超詳細(xì)步驟,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • 使用Golang讀取toml配置文件的代碼實(shí)現(xiàn)

    使用Golang讀取toml配置文件的代碼實(shí)現(xiàn)

    在開(kāi)發(fā)過(guò)程中,配置文件是必不可少的一部分,它使我們能夠在不更改代碼的情況下更改應(yīng)用程序的行為,TOML是一種簡(jiǎn)單易讀的配置文件格式,本文將介紹如何使用Golang來(lái)讀取TOML配置文件,需要的朋友可以參考下
    2024-04-04

最新評(píng)論

鸡东县| 博客| 若尔盖县| 鹤峰县| 永安市| 阳新县| 孝义市| 青河县| 鹤壁市| 临沧市| 铁岭市| 镇平县| 当雄县| 平遥县| 周口市| 绵阳市| 河西区| 淮南市| 进贤县| 宁陵县| 保定市| 镇赉县| 泰州市| 海林市| 堆龙德庆县| 棋牌| 阿克| 通辽市| 锡林郭勒盟| 年辖:市辖区| 贵溪市| 营口市| 喀喇沁旗| 海南省| 揭西县| 合川市| 陵川县| 台北市| 海丰县| 巨野县| 图片|