Python程式檢查一個列表的反轉子列表是否可以形成第二個列表
假設我們有兩個數字列表,稱為 A 和 B。我們必須在 A 中取一些子列表並將其反轉。然後檢查是否可以將 A 轉換為 B。我們可以取子列表並將其反轉任意次數。
因此,如果輸入類似於 A = [2, 3, 4, 9, 10],B = [4, 3, 2, 10, 9],則輸出將為 True,因為我們可以反轉 [2,3,4] 和 [9,10]。
要解決此問題,我們將遵循以下步驟:
- res := 一個對映,最初為空
- 對於 nums 中的每個 n,執行以下操作:
- res[n] := res[n] + 1
- 對於 target 中的每個 t,執行以下操作:
- res[t] := res[t] - 1
- 當 res 的值中的所有元素都與 0 相同的時候返回 true。
讓我們看看以下實現以獲得更好的理解:
示例
from collections import defaultdict class Solution: def solve(self, nums, target): res = defaultdict(int) for n in nums: res[n] += 1 for t in target: res[t] -= 1 return all(n == 0 for n in res.values()) ob = Solution() A = [2, 3, 4, 9, 10] B = [4, 3, 2, 10, 9] print(ob.solve(A, B))
輸入
[2, 3, 4, 9, 10], [4, 3, 2, 10, 9]
輸出
True
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP