检查列表中的下一个元素,如果匹配,则更改并维护备用顺序



array a=[1,0,1,0,1,1]函数应在将最后一个元素反转为0后返回1实现output=[1,0,1,0,1,0]的替代

array a=[1,1,0,1,1]函数应在反转第一个和第五个元素后返回2实现output=[0,1,0,1,0]的替代

array a =[0,1,1,0]函数应在反转第一个和第二个元素后返回2实现output=[1,0,1,0]的替代

array a =[0,1,0]函数应返回0,因为序列已经存在

您可以使用enumerate((根据第一个元素值生成交替模式,并使用sum((计算与模式不匹配的元素

a=[1,0,1,0,1,1]
n = sum(b != i%2 for i,b in enumerate(a,a[0]))
print(n) # 1

对于[1,1,0,1,1],您的预期结果是2,而不是3,这表明您实际上想要获得最小数量的更改(我猜您没有明确指定(。

a=[1,1,0,1,1]
n = sum(b != i%2 for i,b in enumerate(a,a[0]))
n = min(n,len(a)-n)
print(n) # 2

最新更新