Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình gom nhóm các phần tử liên tiếp giống nhau thành danh sách con bằng Python


Cho danh sách nums, gom các phần tử liên tiếp có cùng giá trị thành các danh sách con. Phần tử đơn lẻ vẫn nằm trong danh sách con riêng.

Ví dụ: [5, 5, 2, 7, 7, 7, 2, 2, 2, 2] → [[5, 5], [2], [7, 7, 7], [2, 2, 2, 2]].

Quy trình giải quyết

  1. Nếu nums rỗng, trả về danh sách rỗng.
  2. Khởi tạo result = [[nums[0]]], j = 0.
  3. Với i từ 1 đến len(nums)-1:
    • Nếu nums[i] != nums[i-1]: thêm danh sách rỗng vào result, tăng j.
    • Thêm nums[i] vào result[j].
  4. Trả về result.

Ví dụ mã nguồn

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))
# Output: [[5, 5], [2], [7, 7, 7], [2, 2, 2, 2]]

Đầu vào

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

Đầu ra

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