Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình kiểm tra các sắp xếp quy ước của người lập trình có đúng hay không trong Python

Giả sử chúng ta có một số n, đây là đại diện cho các lập trình viên đang tìm cách nhập một quy ước, và chúng ta cũng có một danh sách các số, quy ước 1 đại diện cho một lập trình viên và 0 đại diện cho khoảng trống. Bây giờ điều kiện là không có hai lập trình viên nào có thể ngồi cạnh nhau, chúng ta phải kiểm tra xem tất cả n lập trình viên có thể nhập quy ước hay không.

Vì vậy, nếu đầu vào là n =2, ước =[0, 0, 1, 0, 0, 0, 1], thì đầu ra sẽ là True

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • đối với tôi trong phạm vi từ 0 đến kích thước chuyển đổi, hãy thực hiện
    • a:=0 khi i-1 <0 nếu không thì i-1
    • b:=kích thước của chuyển đổi -1 khi tôi + 1> =kích thước của chuyển đổi nếu không thì tôi + 1
    • nếu chuyển đổi [i] giống 0 và chuyển đổi [a] giống 0 và chuyển đổi [b] giống 0 thì
      • chuyển đổi [i]:=1
      • n:=n - 1
  • trả về true khi n <=0, ngược lại là 0.

Ví dụ

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))

Đầu vào

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

Đầu ra

True