Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình kiểm tra xem chúng tôi có đảo ngược danh sách con của một danh sách để tạo thành danh sách thứ hai hay không bằng Python

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