Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมนับคู่ Index ที่ค่าเท่ากันใน Python

ให้ลิสต์ nums นับคู่ i < j ที่ nums[i] == nums[j]

ตัวอย่าง: nums=[5,4,5,4,4] → 4 (คู่: (0,2),(1,3),(1,4),(3,4))

ขั้นตอน (Combinatorics)

  1. c = Counter(nums)
  2. แต่ละค่าที่ปรากฏ n ครั้ง ให้ n*(n-1)/2 คู่
  3. รวมทั้งหมด

ตัวอย่างโค้ด

from collections import Counter

def solve(nums):
    c = Counter(nums)
    count = 0
    for n in c.values():
        count += n * (n - 1) // 2
    return count

nums = [5, 4, 5, 4, 4]
print(solve(nums))  # Output: 4

อินพุต

[5, 4, 5, 4, 4]

เอาต์พุต

4