问题描述
def first(a):
cnt=0
if a[0]==1:
a[0]=0
else:
a[0]=1
for i in range(1,len(a)):
if a[i] != a[i - 1]:
continue
else:
if a[i - 1] == True:
a[i] = 0
else:
a[i] = 1
cnt += 1
return cnt
def second(a):
cnt=0
for i in range(1,len(a)):
if a[i] != a[i - 1]:
continue
else:
if a[i - 1] == True:
a[i] = 0
else:
a[i] = 1
cnt += 1
return cnt
def solution(A):
ans=first(A)
ans2=second(A)
return min(ans2,ans)
print(solution([1,1,1]))
嗨,我做了3个函数,我认为列表“ A”将存储在堆栈存储器中并复制函数“ first”的参数
但“第一次”运行后A发生了变化
(这意味着[1,1]更改为[1,1],因此当运行“ second”时,列表“ A”被置为[1 ,0,1] 不是原始列表“ A”([1,1]))
为什么会这样?
与此不同吗?
def swap(a,b):
tmp=a
a=b
b=tmp
def solution(a,b):
swap(a,b)
print(a,b)
solution(1,2) # answer is 1,2
在这种情况下,a,b不变
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)