मान लीजिए कि हमारे पास एक सरणी संख्या है। हमें युग्मों की संख्या ज्ञात करनी है (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