मान लीजिए कि हमारे पास भिन्नों की एक सूची है जहां प्रत्येक भिन्न अलग-अलग सूचियां हैं [अंश, हर] जो संख्या (अंश / हर) का प्रतिनिधित्व करता है। हमें भिन्नों के युग्मों की संख्या ज्ञात करनी है जिनका योग 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