我正在做一个编码问题,其目的是“编写一个函数,该函数采用一个值数组并将所有为零的元素移动到数组的末尾,否则保持数组的顺序。零元素也必须保持它们发生的顺序。”
我正在用 Python 测试我的代码,遇到了一个问题,我设置了一个条件以在找到 0 时忽略它们,但条件不起作用。是因为我正在修改循环中的列表,而没有考虑更新的值吗?我可以在没有额外空间的情况下处理这个吗?
def remove_zeros(array):
for i in range(len(array)):
if array[i] != 0 or array[i] != "0":
c = array[i]
print(c) #this is printing 0, but I'm setting condition to ignore 0's!
for j in range(i, 0, -1):
if array[j - 1] == 0 or array[j - 1] == "0":
temp = array[j]
array[j] = array[j - 1]
array[j - 1] = temp
return array
input = [ 1, None, '5', '0', '2', 0, 8, 6, None, False ]
output = remove_zeros(input)