숫자 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] 삽입
- nums[i]가 nums[i - 1]과 같지 않으면
- 반환 결과
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
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]]