用 Python 檢查矩陣的所有行是否彼此迴圈旋轉
假設,我們得到一個大小為 n*n 的矩陣,其中包含整數。我們必須找出該矩陣的所有行是否都是其前一行的迴圈旋轉。對於第一行,它應該是第 n 行的迴圈旋轉。
因此,如果輸入如下所示
B | A | D | C |
C | B | A | D |
D | C | B | A |
A | D | C | B |
則輸出將為 True。
為了解決這個問題,我們將遵循以下步驟:
- concat := 空字串
- 對於 i 從 0 到行數,執行
- concat := concat 連線 "-" 連線 matrix[0,i]
- concat := concat 連線 concat
- 對於 i 從 1 到矩陣大小,執行
- curr_row := 空字串
- 對於 j 從 0 到列數,執行
- curr_row := curr_row 連線 "-" 連線 matrix[i,j]
- 如果 curr_row 存在於字串 concat 中,則
- 返回 True
- 返回 False
示例
讓我們看看以下實現以更好地理解:
def solve(matrix) : concat = "" for i in range(len(matrix)) : concat = concat + "-" + str(matrix[0][i]) concat = concat + concat for i in range(1, len(matrix)) : curr_row = "" for j in range(len(matrix[0])) : curr_row = curr_row + "-" + str(matrix[i][j]) if (concat.find(curr_row)) : return True return False matrix = [['B', 'A', 'D', 'C'], ['C', 'B', 'A', 'D'], ['D', 'C', 'B', 'A'], ['A', 'D', 'C', 'B']] print(solve(matrix))
輸入
[['B', 'A', 'D', 'C'], ['C', 'B', 'A', 'D'], ['D', 'C', 'B', 'A'], ['A', 'D', 'C', 'B']]
輸出
True
廣告