在Python中编写程序以查找列表中每个元素的所有连接对的和?

在Python中编写程序以查找列表中每个元素的所有连接对的和?

假设我们有一个名为nums的数字列表。我们必须找到nums中每对数字的每个串联的总和。这里认为对(i,j)和对(j,i)是不同的。

所以,如果输入是nums = [5, 3],那么输出将是176,因为我们有以下串联:(nums [0] + nums [0])=(5 concat 5)= 55,(nums [0] + nums [1])=(5 concat 3)= 53,(nums [1 ] + nums [0])=(3 concat 5)= 35,(nums [0] + nums [0])=(3 concat 3)= 33,然后总和为55 + 53 + 35 + 33 = 176

要解决此问题,我们将遵循以下步骤:

memo:=新映射
nums1:= nums
temp:= 0
c:= nums1中所有元素的总和
a:= nums的大小
for i in range 0 to a,do
   如果nums [i]和0相同,则
      temp:= temp + c
   否则,
      如果nums [i]存在于memo中,则
         temp:= temp + memo [nums [i]]
      否则,
         b:= 0
         for j in range 0 to a,do
           b:= b +整数(nums [i]连接nums1 [j])
         memo [nums [i]]:= b
         temp:= temp + memo [nums [i]]
返回temp

让我们看以下实现以更好地理解:

示例

class Solution:
   def solve(self, nums):
      memo = {}
      nums1 = nums
      temp = 0
      c = sum(nums1)
      a = len(nums)
      for i in range(a):
         if nums[i] == 0:
            temp += c
         else:
            if nums[i] in memo:
               temp += memo[nums[i]]
            else:
               b = 0
               for j in range(a):
                  b += int(str(nums[i]) + str(nums1[j]))
               memo[nums[i]] = b
               temp += memo[nums[i]]
      return temp

ob = Solution()
nums = [5, 3]
print(ob.solve(nums))

输入

[5, 3]

输出

176

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程