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

ตรวจสอบว่าอาร์เรย์ 1 และ 2 สามารถแบ่งออกเป็น 2 ส่วนโดยมีผลรวมเท่ากันในPython .หรือไม่


สมมติว่าเรามีจำนวนอาร์เรย์ที่เก็บได้เพียง 1 และ 2 เท่านั้น เราต้องตรวจสอบว่าอาร์เรย์สามารถแบ่งออกเป็นสองส่วนที่แตกต่างกันได้หรือไม่ ดังนั้นผลรวมขององค์ประกอบในแต่ละส่วนจะเท่ากัน

ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[1, 1, 2, 2, 2] ผลลัพธ์จะเป็น True เนื่องจากเราสามารถแบ่งอาร์เรย์นี้ได้เช่น [1, 1, 2] และ [2, 2] ผลรวมของ แต่ละส่วนคือ 4.

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • รวม :=0, one_count :=0
  • ผลรวม :=ผลรวมขององค์ประกอบทั้งหมดของ nums
  • one_count :=นับ 1 วินาทีในหน่วย nums
  • ถ้าผลรวมเป็นคู่
    • คืนค่าเท็จ
  • ถ้าส่วนจำนวนเต็มของ (ผลรวม / 2) เป็นคู่ ดังนั้น
    • คืนค่า True
  • ถ้า one_count> 0 แล้ว
    • คืนค่า True
  • มิฉะนั้น
    • คืนค่าเท็จ

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

def solve(nums):
   total = 0
   one_count = 0
   total = sum(nums)
   one_count = nums.count(1)
   if total % 2:
      return False
   if (total // 2) % 2 == 0:
      return True
   if one_count > 0:
      return True
   else:
      return False
nums = [1, 1, 2, 2, 2]
print(solve(nums))

อินพุต

[1, 1, 2, 2, 2]

ผลลัพธ์

True