Giả sử chúng ta có hai danh sách các số được gọi là A và B. Chúng ta phải lấy một số danh sách con trong A và đảo ngược nó. Sau đó kiểm tra xem có thể biến A thành B hay không. Chúng tôi có thể lấy danh sách phụ và đảo ngược nó bất kỳ lúc nào.
Vì vậy, nếu đầu vào giống như A =[2, 3, 4, 9, 10], B =[4, 3, 2, 10, 9], thì đầu ra sẽ là True như wecan ngược [2,3,4 ] và [9,10].
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- res:=một bản đồ, lúc đầu trống
- với mỗi n trong nums, thực hiện
- res [n]:=res [n] + 1
- đối với mỗi t trong mục tiêu, thực hiện
- res [t]:=res [t] - 1
- trả về true khi tất cả các phần tử trong giá trị của res giống như 0.
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
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))
Đầu vào
[2, 3, 4, 9, 10], [4, 3, 2, 10, 9]
Đầu ra
True