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
广告