LeetCode 2562. 找出数组的串联值缩略图

给你一个下标从 0 开始的整数数组 nums 。

现定义两个数字的 串联 是由这两个数值串联起来形成的新数字。

  • 例如,15 和 49 的串联是 1549 。

nums 的 串联值 最初等于 0 。执行下述操作直到 nums 变为空:

  • 如果 nums 中存在不止一个数字,分别选中 nums 中的第一个元素和最后一个元素,将二者串联得到的值加到 nums 的 串联值 上,然后从 nums 中删除第一个和最后一个元素。
  • 如果仅存在一个元素,则将该元素的值加到 nums 的串联值上,然后删除这个元素。

返回执行完所有操作后 nums 的串联值。

2562. 找出数组的串联值 – 力扣(Leetcode)

LeetCode 2562. 找出数组的串联值插图

OpenCV步步精深-可心科创工作室

LeetCode 2562. 找出数组的串联值插图1

OpenCV步步精深-可心科创工作室

思路:

偶数长度就双指针遍历即可,奇数最后加上中间元素就行。

python3实现:

class Solution:
    def findTheArrayConcVal(self, nums: List[int]) -> int:
        p0 = 0
        p1 = len(nums) - 1
        tmp = 0

        while p0 < p1:
            print("p0:",p0,"p1:",p1)
            target1 = str(nums[p0])
            target2 = str(nums[p1])
            tmp += int(target1 + target2)
            
            p0 += 1
            p1 -= 1
        if len(nums) % 2 == 1:
            tmp += nums[p0]

        return tmp
LeetCode 2562. 找出数组的串联值插图2

OpenCV步步精深-可心科创工作室

更多干货见 OpenCV步步精深

作者 admin

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注