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

Python에서 동일한 연속 요소를 하위 목록에 포장하는 프로그램

<시간/>

숫자 num의 목록이 있다고 가정하고 동일한 값의 연속 요소를 하위 목록으로 묶습니다. 목록에는 한 번만 발생하므로 자체 하위 목록에 있어야 한다는 점을 명심해야 합니다.

따라서 입력이 nums =[5, 5, 2, 7, 7, 7, 2, 2, 2, 2]와 같으면 출력은 [[5, 5], [2], [7, 7, 7], [2, 2, 2, 2]]

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

  • nums가 비어 있으면
    • 새 목록 반환
  • result :=nums[0]을 포함하는 다른 목록이 있는 목록
  • j :=0
  • 범위 1에서 숫자 크기까지의 i에 대해 다음을 수행합니다.
    • nums[i]가 nums[i - 1]과 같지 않으면
      • 결과 끝에 새 목록 삽입
      • j :=j + 1
    • 결과[j] 끝에 숫자[i] 삽입
  • 반환 결과

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

예시

class Solution:
   def solve(self, nums):
      if not nums:
         return []
      result = [[nums[0]]]
      j = 0
      for i in range(1, len(nums)):
         if nums[i] != nums[i - 1]:
            result.append([])
            j += 1
            result[j].append(nums[i])
      return result
ob = Solution()
nums = [5, 5, 2, 7, 7, 7, 2, 2, 2, 2]
print(ob.solve(nums))

입력

[5, 5, 2, 7, 7, 7, 2, 2, 2, 2]

출력

[[5, 5], [2], [7, 7, 7], [2, 2, 2, 2]]