我对编码非常陌生,在作为训练营应用程序的一部分时,遇到了我整天都在工作的问题,但Im感到困惑。它也是定时的,我只剩下大约12个小时了。我必须取两个整数,并通过上下移动每个数字,然后将它们与第二对整数进行匹配,然后加上执行此操作所需的最小移动数,这将是最终的答案。这是我第一次使用CSS以外的任何形式的语言,所以请多多包涵。示例如下:
“ Andrea和Maria每个人都有一个整数数组。Andrea想要更改其数组以匹配Maria的整数。对于她数组中的每个元素,sha可以一举一动地递增或递减一位数字。它将移动几步。选择Andrea来匹配Marias数组。
完成函数minimumMoves
minimumMoves具有以下参数: a [a [0],... a [n-1]]: m [m [0],... m [n-1]]:
我是如此迷茫,我真的需要有人向我指出正确的方向。请帮忙!!!
我已经在谷歌上搜索了,但是我无法解决这个问题,如何从整数中挑选出每个数字并遍历每个数字,而不必为每个数字编写新的代码行。
#!/bin/python3
import math
import os
import random
import re
import sys
#
# Complete the 'minimumMoves' function below.
#
# The function is expected to return an INTEGER.
# The function accepts following parameters:
# 1. INTEGER_ARRAY a
# 2. INTEGER_ARRAY m
#
def minimumMoves(a, m):
# Write your code here
a = [4321, 3211]
m = [5432, 4302]
total=0
if a[0] <= b[0]
a[0] += 1
else if a[0] >= b[0]
a[0] += 1
答案 0 :(得分:0)
如果在列表中表示相同的索引数字,则可以尝试以下操作:
def minimumMoves(a, m):
# Write your code here
a = [4321, 3211]
m = [5432, 4302]
total = 0
# iterate the array of a and m together
for i, j in zip(a, m):
# means how many steps to turn i into j
total += abs(i - j)
return total
希望对您有所帮助,如有其他问题,请发表评论。 :)
答案 1 :(得分:0)
zip两次对字符串化整数进行比较,以逐位比较和求和绝对差。
我不清楚9-> 1是两个动作(9-> 0-> 1)还是八个动作。我认为是后者:
def minimumMoves(a, m):
a = [str(x) for x in a]
m = [str(x) for x in m]
return sum([
abs(int(f) - int(s))
for x, y in zip(a, m)
for f, s in zip(x, y)
])
a = [4321, 3211]
m = [5432, 4302]
minimumMoves(a, m)
>>> 8