車的可用捕獲量

2022-09-11 17:45:11 字數 941 閱讀 2229

問題描述:

在乙個 8 x 8 的棋盤上,有乙個白色車(rook)。也可能有空方塊,白色的象(bishop)和黑色的卒(pawn)。它們分別以字元 「r」,「.」,「b」 和 「p」 給出。大寫字元表示白棋,小寫字元表示黑棋。

車按西洋棋中的規則移動:它選擇四個基本方向中的乙個(北,東,西和南),然後朝那個方向移動,直到它選擇停止、到達棋盤的邊緣或移動到同一方格來捕獲該方格上顏色相反的卒。另外,車不能與其他友方(白色)象進入同乙個方格。

返回車能夠在一次移動中捕獲到的卒的數量。

思路:象棋盤上有四種型別的元素——「白車 r」「空格子 .」「白象 b」「黑卒 p」

以r為中心,可以向東南西北四個方向移動,

如果有p,則可以捕獲,

如果有b,則不能移動

結合所給測試用例,本題所要求的是r在一次移動中可能捕捉到的p的數量

如下圖,紅色底格仔即為r可捕捉到的p

本題的結果是3

本題的結果是3

以上,希望對各位有所幫助

public static int getnumrookcaptures(char board) //left 以車為中心向左邊尋找黑棋for(int i=a;i>=0;i--) }//rightfor(int i=a;i=0;j--) }//down for(int j=b;j

999 車的可用捕獲量

解題思路 1.先先找到r所在的位置,即獲取r所在行列座標 2.根據r所在行向左查詢p,如果遇到b,則結束。如果查詢到p則計數器加1,並結束 3.根據r所在行向右查詢p,如果遇到b,則結束。如果查詢到p則計數器加1,並結束 4.根據r所在行向上查詢p,如果遇到b,則結束。如果查詢到p則計數器加1,並結...

999 車的可用捕獲量

在乙個 8 x 8 的棋盤上,有乙個白色車 rook 也可能有空方塊,白色的象 bishop 和黑色的卒 pawn 它們分別以字元 r b 和 p 給出。大寫字元表示白棋,小寫字元表示黑棋。車按西洋棋中的規則移動 它選擇四個基本方向中的乙個 北,東,西和南 然後朝那個方向移動,直到它選擇停止 到達棋...

LeetCode999 車的可用捕獲量

解析 我想到的是一種比較笨的方法,首先遍歷找出車的位置,然後分別在同列向上,同列向下,同行向左,同行向右遍歷查詢遇到的第乙個非空位置,如果是p則加一,遍歷結束 如果是b,則遍歷結束。最後得出結果。不知道有沒有更好的方法,總感覺自己的方法太笨了,又想不出好的方法。int numrookcaptures...