首先设计循环,循环肯定不会缺少判断,我们假设第i个和i+1个都是0,那么我们需要判断i是否为0,如果不是,我们会看第i-1个的值。代码如下
for x in range(len(flowerbed)-1):
if flowerbed[x] == flowerbed[x+1] == 0:
if (flowerbed[x-1] == 0 and x > 0) or x == 0:
n -= 1
flowerbed[x] = 1
elif flowerbed[x] == 1:
continue
到此我们需要判断倒序的-1, -2、
if flowerbed[-1] == flowerbed[-2] == 0:
n -= 1
之后就要返回值了
return False if n > 0 else True
其实这些还不够,如果是[],[1], [0], [1, 1]怎么办?我们就要对边际问题进行解答
if not n:
return True
if len(flowerbed) <= 2:
if 1 in flowerbed:
return False if n > 0 else True
else:
n -= 1
return False if n > 0 else True