Python程序检查程序员大会安排是否正确


假设我们有一个数字n,代表想要参加会议的程序员人数,我们还有一个数字列表,会议室中1代表一个程序员,0代表空位。条件是任何两个程序员都不能相邻而坐,我们必须检查是否所有n个程序员都能参加会议。

因此,如果输入类似于n = 2,convention = [0, 0, 1, 0, 0, 0, 1],则输出为True。

为了解决这个问题,我们将遵循以下步骤:

  • 对于范围从0到conv大小的i,执行以下操作:
    • 当i-1 < 0时,a := 0;否则 a := i-1
    • 当i+1 >= conv的大小 时,b := conv的大小 -1;否则 b := i+1
    • 如果conv[i] 等于 0 且 conv[a] 等于 0 且 conv[b] 等于 0,则
      • conv[i] := 1
      • n := n - 1
  • 当n <= 0时返回true,否则返回0。

示例

在线演示

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

更新于:2020年10月6日

77 次查看

开启你的职业生涯

完成课程获得认证

开始学习
广告