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

โปรแกรมตรวจสอบการจัดที่นั่งนักเขียนโปรแกรมในงานประชุมใน Python

สมมติว่ามีตัวเลข n แทนนักเขียนโปรแกรมที่จะเข้าร่วมงานประชุม และมีรายการตัวเลข convention โดย 1 แทนนักเขียนโปรแกรม 0 แทนที่ว่าง เงื่อนไขคือไม่มีนักเขียนโปรแกรมสองคนนั่งติดกัน เราต้องตรวจสอบว่านักเขียนโปรแกรมทั้ง n คนสามารถเข้าได้หรือไม่

เช่น ถ้าอินพุตคือ n = 2, convention = [0, 0, 1, 0, 0, 0, 1] ผลลัพธ์จะเป็น True

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

  • for i ในช่วง 0 ถึงขนาดของ conv ทำ
    • a := 0 ถ้า i-1 < 0 มิฉะนั้น i-1
    • b := ขนาดของ conv -1 ถ้า i+1 >= ขนาดของ conv มิฉะนั้น i+1
    • ถ้า conv[i] == 0 และ conv[a] == 0 และ conv[b] == 0 แล้ว conv[i] := 1, n := n - 1
  • คืนค่า true ถ้า n <= 0 มิฉะนั้น false

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

class Solution:
    def solve(self, n, conv):
        for i in range(len(conv)):
            a = 0 if i-1 < 0 else i-1
            b = len(conv)-1 if i+1 >= len(conv) else i+1
            if conv[i] == 0 and conv[a] == 0 and conv[b] == 0:
                conv[i] = 1
                n -= 1
        return n <= 0

ob = Solution()
n = 2
convention = [0, 0, 1, 0, 0, 0, 1]
print(ob.solve(n, convention))

อินพุต

2, [0, 0, 1, 0, 0, 0, 1]

เอาต์พุต

True