मान लीजिए कि हमारे पास भिन्नों की एक सूची है जहां प्रत्येक भिन्न अलग-अलग सूचियां हैं [अंश, हर] जो संख्या (अंश / हर) का प्रतिनिधित्व करता है। हमें भिन्नों के युग्मों की संख्या ज्ञात करनी है जिनका योग 1 है।
इसलिए, यदि इनपुट भिन्नों की तरह है =[[2, 7], [3, 12], [4, 14], [5, 7], [3, 4], [1, 4]], तो आउटपुट 4 होगा, जैसा कि (2/7 + 5/7), (3/12 + 3/4), (3/4 + 1/4), (4/14 + 5/7) चार जोड़े हैं जिनका योग है से 1.
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
- d :=एक नया नक्शा
- उत्तर:=0
- प्रत्येक भिन्न के लिए i भिन्नों में, करें
- x :=मैं[अंश]
- y :=i[denominator]
- g :=gcd of (x, y)
- x :=x / g
- y :=y / g
- temp_x :=y - x
- temp_y :=y
- अगर (temp_x, temp_y) d में है, तो
- उत्तर:=उत्तर + डी[temp_x, temp_y]
- d[x, y] :=1 + (d[(x, y)] जब यह उपलब्ध हो, अन्यथा 0)
- वापसी उत्तर
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें:
उदाहरण कोड
class Solution:
def solve(self, fractions):
import math
d = {}
ans = 0
for i in fractions:
x = i[0]
y = i[1]
g = math.gcd(x, y)
x /= g
y /= g
temp_x = y - x
temp_y = y
if (temp_x, temp_y) in d:
ans += d[(temp_x, temp_y)]
d[(x, y)] = d.get((x, y), 0) + 1
return ans
ob = Solution()
fractions = [[2, 7],[3, 12],[4, 14],[5, 7],[3, 4],[1, 4]]
print(ob.solve(fractions)) इनपुट
[[2, 7],[3, 12],[4, 14],[5, 7],[3, 4],[1, 4]]
आउटपुट
4