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

โปรแกรมหาความสุขจากการตรวจสอบสมาชิกในเซตใน Python

สมมติว่าเรามีอาเรย์ nums ที่มี n จำนวนเต็มต่างกัน เรายังมีเซต A และ B ที่ไม่ซ้อนทับกัน (Disjoint Sets) เรามีพารามิเตอร์ความสุข (Happiness) เริ่มต้นที่ 0 เราไปผ่านแต่ละจำนวน i ใน nums ถ้า i อยู่ใน A เพิ่มความสุข 1 ถ้าอยู่ใน B ลดลง 1 เราต้องหาค่าความสุขสุดท้าย

ตัวอย่างเช่น หาก nums = [1,2,5,8,6,3] A = {5,8,9,7,3} B = {2,4,12,15} ผลลัพธ์จะเป็น 2 เพราะ 5, 8, 3 อยู่ใน A ความสุข = 3 แต่ 2 อยู่ใน B ลดเหลือ 2

ขั้นตอนการแก้ปัญหา

  • happiness := 0
  • สำหรับแต่ละ i ใน nums:
    • ถ้า i ใน A: happiness += 1
    • ถ้า i ใน B: happiness -= 1
  • คืนค่า happiness

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

def solve(nums, A, B):
    happiness = 0
    for i in nums:
        if i in A:
            happiness += 1
        elif i in B:
            happiness -= 1
    return happiness

nums = [1,2,5,8,6,3]
A = {5,8,9,7,3}
B = {2,4,12,15}
print(solve(nums, A, B))

อินพุต

[1,2,5,8,6,3], {5,8,9,7,3}, {2,4,12,15}

เอาต์พุต

2