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
- Nếu
numsrỗng, trả về danh sách rỗng. - Khởi tạo
result = [[nums[0]]],j = 0. - Với
itừ 1 đếnlen(nums)-1:- Nếu
nums[i] != nums[i-1]: thêm danh sách rỗng vàoresult, tăngj. - Thêm
nums[i]vàoresult[j].
- Nếu
- 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]]