মান লক্ষ্য করুন আমাদের কাছে একটি ফ্র্যাকশন (ভগ্নাংশ) তালিকা আছে যেখানে প্রতিটি ফ্র্যাকশন আলাদা তালিকা [numerator, denominator] হিসেবে দেয়া আছে যা সংখ্যাটি (numerator / denominator) কে প্রতিনিধিত্ব করে। আমাদের কাজ হল যোগফল ১ হয় এমন ফ্র্যাকশন জোড়ার সংখ্যা বের করা।
উদাহরণস্বরূপ, যদি ইনপুট হয় fractions = [[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) - এই চারটি জোড়ার যোগফল ১।
d :=একটি নতুন ম্যাপans := 0- প্রতিটি
fraction iএর জন্যfractions-এ:x := i[0](নিউমেরেটর)y := i[1](ডিনোমিনেটর)g := gcd(x, y)x := x / g,y := y / g(সরল রূপে আনার জন্য)temp_x := y - xtemp_y := y- যদি
(temp_x, temp_y)d-এ থাকে, তবেans := ans + d[temp_x, temp_y] d[x, y] := 1 + (d[(x, y)] যদি থাকে অন্যথায় 0)
ansরিটার্ন করুন।
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