สมมติว่าเรามีรายการตัวเลข nums เราจะแพ็คองค์ประกอบที่ต่อเนื่องกันของค่าเดียวกันลงในรายการย่อย เราต้องจำไว้ว่ามีเพียงเหตุการณ์เดียวในรายการที่ควรจะยังคงอยู่ในรายการย่อยของตัวเอง
ดังนั้น หากอินพุตเป็น nums =[5, 5, 2, 7, 7, 7, 2, 2, 2, 2] ผลลัพธ์จะเป็น [[5, 5], [2], [7, 7, 7], [2, 2, 2, 2]]
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- ถ้า nums ว่างเปล่าก็
- คืนรายการใหม่
- ผลลัพธ์ :=รายการที่มีรายการอื่นที่มี nums[0]
- j :=0
- สำหรับ i ในช่วง 1 ถึงขนาดของ nums ให้ทำ
- ถ้า nums[i] ไม่เหมือนกับ nums[i - 1] แล้ว
- แทรกรายการใหม่ที่ท้ายผลลัพธ์
- j :=j + 1
- ใส่ nums[i] ที่ท้ายผลลัพธ์[j]
- ถ้า 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]]