LeetCode 1812[判斷國際象棋棋盤中一個格子的顏色]

EricsT發表於2024-11-22

題目

連結

LeetCode 1812[判斷國際象棋棋盤中一個格子的顏色]

詳情

LeetCode 1812[判斷國際象棋棋盤中一個格子的顏色]

例項

LeetCode 1812[判斷國際象棋棋盤中一個格子的顏色]

提示

LeetCode 1812[判斷國際象棋棋盤中一個格子的顏色]

題解

思路

8 * 8的格子,數量不多,所以我採用的是列舉法

a,c,e,g 列的 1,3,5,7 行是黑色,輸出 false,而 2,4,6,8 行是白色,輸出 true

b,d,f,h 列的 2,4,6,8 行是黑色,輸出 false,而 1,3,5,7 行是白色,輸出 true

記 a,c,e,g 列,第一列;b,d,f,h 列,第二列

記 1,3,5,7 行,第一行;2,4,6,8 行,第二行

首先判斷字串的首字元是否屬於第一列:

屬於第一列:

再判斷字串的末尾字元是否屬於第一行:

屬於第一行:為黑色,輸出 false

不屬於第一行:為白色,輸出 true

不屬於第一列:

再判斷字串的末尾字元是否屬於第一行:

屬於第一行:為白色,輸出 true

不屬於第一行:為黑色,輸出 false

程式碼

class Solution {
public:
    bool squareIsWhite(string coordinates) {

        if (('a' == coordinates[0]) || ('c' == coordinates[0]) ||
            ('e' == coordinates[0]) || ('g' == coordinates[0]))
        {
            if (('1' == coordinates[1]) || ('3' == coordinates[1]) ||
                ('5' == coordinates[1]) || ('7' == coordinates[1]))
                return false;
                
            return true;
        }

        if (('1' == coordinates[1]) || ('3' == coordinates[1]) ||
            ('5' == coordinates[1]) || ('7' == coordinates[1]))
            return true;
        
        return false;
    }
};

相關文章