কম্পিউটার টিউটোরিয়াল

পাইথনে সমান এলিমেন্ট 가진 (i, j) জোড়ার সংখ্যা খুঁজে বের করা

একটি অ্যারে nums দেওয়া আছে। এমন জোড়া (i, j) কতটি আছে যেখানে nums[i] = nums[j] কিন্তু i ≠ j।

উদাহরণ

ইনপুট: nums = [1, 3, 1, 3, 5]

আউটপুট: 4

কারণ জোড়াগুলো হল: (0,2), (2,0), (1,3), (3,1)

সমাধান পদ্ধতি

  1. d নামে একটি নতুন ম্যাপ/ডিকশনারি তৈরি করুন।
  2. nums-এর প্রতিটি c এর জন্য:
    • d[c] := d[c] + 1 যদি c ইতিমধ্যে d-তে থাকে, অন্যথায় ১।
  3. res := 0 ইনিশিয়ালাইজ করুন।
  4. যেসব c এর জন্য d[c] > 1:
    • res := res + (d[c] * (d[c] - 1))
  5. res রিটার্ন করুন।

পাইথন ইমপ্লিমেন্টেশন

def solve(nums):
    d = {}
    for c in nums:
        d[c] = d.get(c, 0) + 1
    res = 0
    for c in d:
        if d[c] > 1:
            res += d[c] * (d[c] - 1)
    return res

# টেস্ট
nums = [1, 3, 1, 3, 5]
print(solve(nums))  # আউটপুট: 4

ইনপুট

[1,3,1,3,5]

আউটপুট

4
  1. পাইথনে x, y, z অক্ষরের নির্দিষ্ট সংখ্যা সম্বলিত সাবসিকোয়েন্স গণনা

  2. পাইথনে প্রথম ও শেষ মান সমান সাবলিস্টের সংখ্যা খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে দুটি BST থেকে দিয়ে সম সংখ্যায় পেয়ার (pair) খুঁজে বের করা

  4. পাইথনে ম্যাট্রিক্স থেকে ভিন্ন সারির উপাদান দিয়ে সমান সম্বলিত পেয়ার খুঁজে বের করা