मान लीजिए कि हमारे पास एक सरणी संख्या है। हमें युग्मों की संख्या ज्ञात करनी है (i,j) क्या ऐसे हैं कि nums[i] =nums[j] लेकिन i j के समान नहीं है।
इसलिए, यदि इनपुट संख्या =[1,3,1,3,5] की तरह है, तो आउटपुट 4 होगा, क्योंकि जोड़े (0,2), (2,0), (1,3) और हैं। (3,1)
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- d :=एक नया नक्शा
- प्रत्येक c के लिए अंकों में, करें
- d[c] :=(d[c] + 1) जब c d में मौजूद हो अन्यथा 1
- res :=0
- प्रत्येक c के लिए तत्वों की सूची में है (x में सभी x के लिए d जहां d[x]> 1), do
- res :=res +(d[c] *(d[c]-1))
- रिटर्न रेस
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(nums): d = {} for c in nums: d[c] = d[c] + 1 if c in d.keys() else 1 res = 0 for c in (x for x in d if d[x] > 1): res += (d[c] * (d[c]-1)) return res nums = [1,3,1,3,5] print(solve(nums))
इनपुट
[1,3,1,3,5]
आउटपुट
4