【问题标题】:Given two lists, return the minimal number of changes needed for one list to become the other给定两个列表,返回一个列表变为另一个列表所需的最少更改次数
【发布时间】:2022-01-08 06:42:07
【问题描述】:

给定两个长度相同的列表:

a = [15, 10, 15, 14]

b = [14, 15, 14, 14]

“a”变为“b”所需的最少更改次数是多少?

这是我的尝试:

c3=0
fht2= [15, 10, 15, 14]
sht2= [14, 15, 14, 14]

for i in range(0,len(fht2)):
  for j in range(0,len(sht2)):
    if fht2==sht2:
      c=0
    else:
      if fht2!=sht2:
        if fht2[i]!=sht2[j] and fht2[i]<=sht2[j]:
          fht2[i]+=abs(fht2[i]-sht2[j])
          c3+=1 
        
        
        if fht2[i]!=sht2[j] and fht2[i]>=sht2[j]:
          fht2[i]-=abs(fht2[i]-sht2[j])
          c3+=1 
print(fht2)          
print(c3) 

输出应该是:

[14, 15, 14, 14]
3

但是,我的输出是:

[14, 14, 14, 14]
11

请帮忙。

【问题讨论】:

  • 什么算是改变?
  • 计数需要 3 但我的计数是 11
  • 列表的长度是否始终相同?
  • 据我了解,您只需要计算 a[i] != b[i] 的次数,我假设 a 和 b 的长度相同,否则您永远无法制作和b一样
  • 是的,兄弟列表的长度总是相同的

标签: python python-3.x list


【解决方案1】:
a = [15, 10, 15, 14]

b = [14, 15, 14, 14]

list_length = len(a)
print("list length:",list_length)
counter = 0
for i in range(list_length):
    if a[i]!= b[i]:
     counter = counter + 1 

print ("minimal number of changes is:",counter)

输出:

列表长度:4

最少更改次数为:3

请学习写出更好的问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 2013-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多