मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है, हम लगातार समान मान वाले तत्वों को सबलिस्ट में पैक करेंगे। हमें ध्यान रखना है कि यदि सूची में केवल एक घटना है तो भी यह अपनी खुद की सबलिस्ट में होनी चाहिए।
इसलिए, यदि इनपुट 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
- i के लिए 1 से nums के आकार तक की रेंज में, करें
- यदि nums[i], nums[i - 1] के समान नहीं है, तो
- result के अंत में एक नई सूची जोड़ें
- j := j + 1
- nums[i] को result[j] के अंत में जोड़ें
- यदि nums[i], nums[i - 1] के समान नहीं है, तो
- result वापस करें
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें −
उदाहरण
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]]