Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 두 번째 목록을 형성하기 위해 한 목록의 하위 목록을 뒤집는지 확인하는 프로그램

<시간/>

A와 B라고 하는 두 개의 숫자 목록이 있다고 가정합니다. A에서 일부 하위 목록을 가져와서 반대로 해야 합니다. 그런 다음 A를 B로 바꿀 수 있는지 확인하십시오. 여러 번 하위 목록을 가져와서 되돌릴 수 있습니다.

따라서 입력이 A =[2, 3, 4, 9, 10], B =[4, 3, 2, 10, 9]와 같으면 출력은 [2,3,4]를 반대로 할 수 있으므로 True가 됩니다. ] 및 [9,10].

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • res :=지도, 처음에는 비어 있음
  • 숫자 단위의 각 n에 대해 다음을 수행합니다.
    • res[n] :=res[n] + 1
  • 대상의 각 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