这个问题只是在代码审查中引起的,我认为您可能希望将其改编为代码高尔夫挑战:
系统会为您提供x个以布尔值表示的房屋的非空列表。每天,房屋与相邻房屋竞争。1代表“活动”房屋,0代表“无效”房屋。如果给定房屋两侧的邻居都处于活动状态或都处于非活动状态,则该房屋在第二天变为非活动状态。否则它将变为活动状态。
def get_state_as_pos(thelist, pos):
if thelist[pos-1] == thelist[pos+1]:
return 0
else:
return 1
例如,如果我们有一组邻居[0,1,0],则[1]处的房屋将变为0,因为左侧和右侧的房屋均处于非活动状态。两端的单元格也检查相对侧,因此索引0的邻居位于索引length-1
和索引n1,反之亦然。即使更新了单元之后,在更新其他单元时也必须考虑其先前状态,以便每个单元的状态信息同时更新。
该函数采用状态数组和多个步骤,并应在给定数量的步骤之后输出房屋的状态。
input: states = [1, 0, 0, 0, 0, 1, 0, 0], steps = 1
output should be [0, 1, 0, 0, 1, 0, 1, 1]
input: states = [1, 1, 1, 0, 1, 1, 1, 1], steps = 2
intermediate state= [0, 0, 1, 0, 1, 0, 0, 0]
output should be [0, 1, 0, 0, 0, 1, 0, 0]
input: states = [1], steps=1
output: states= [0]
采取所需的列表和步骤,并通过默认I / O输出结果列表。禁止出现标准漏洞。这是codegolf,最短答案以字节为单位!
[0, 1, 0, 0, 1, 0, 1, 1]
吗?