मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है, हमें उन उप-सूचियों की संख्या ज्ञात करनी होगी जहां पहला तत्व और अंतिम तत्व समान हैं।
इसलिए, यदि इनपुट संख्या =[10, 15, 13, 10] की तरह है, तो आउटपुट 5 होगा, जैसा कि पहले और अंतिम तत्व के साथ सबलिस्ट हैं:[10], [15], [13], [ 10], [10, 15, 13, 10]।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
num_sublists :=अंकों का आकार
-
d :=एक खाली नक्शा
-
अंकों में प्रत्येक n के लिए, करें
-
d[n] :=d[n] + 1
-
-
d में तत्वों की प्रत्येक संख्या k और संगत आवृत्ति v के लिए, करें
-
अगर v 1 के समान नहीं है, तो
-
num_sublists :=num_sublists +((v-1) *(v)/2 का भागफल)
-
-
-
num_sublists लौटाएं
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
from collections import defaultdict class Solution: def solve(self, nums): num_sublists = len(nums) d = defaultdict(int) for n in nums: d[n] += 1 for k,v in d.items(): if v != 1: num_sublists += (v-1)*(v)//2 return num_sublists ob = Solution() nums = [10, 15, 13, 10] print(ob.solve(nums))
इनपुट
[10, 15, 13, 10]
आउटपुट
5