Kafka Ubuntu java开发环境变量 angularjs forms date npm threejs notifications jaxb icons vue的钩子函数 vue引入组件 vue教学视频 jq遍历元素 jquery多个元素绑定同一个事件 jq获取元素宽度 mysql安装后怎么使用 a标签去除下划线 quartz配置 wordpress本地建站 matlab自然对数 mysql更新 python最大值 python高级教程 python文件 python开发界面 python正则表达式语法 python可视化编程 java9 java基础语言 java8教程 java手册 java循环语句 java替换字符串 java遍历list集合 java对象是什么 java列表 sql实例 wps2011
当前位置: 首页 > 学习教程  > python

【Leetcode】43. 合并K个升序链表(Multiply Strings)

2021/2/7 10:54:36 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

No43. 合并K个升序链表 题目 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 示例1 输入: num1 “2”, num2 “3”输出: “6” 示例2 输入: num1 “123”, num2 “456”输出: “5…

No43. 合并K个升序链表

题目

给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。

示例1

  • 输入: num1 = “2”, num2 = “3”
  • 输出: “6”

示例2

  • 输入: num1 = “123”, num2 = “456”
  • 输出: “56088”

说明

  • num1 和 num2 的长度小于110。
  • num1 和 num2 只包含数字 0-9。
  • num1 和 num2 均不以零开头,除非是数字 0 本身。
  • 不能使用任何标准库的大数类型(比如 BigInteger)或直接将输入转换为整数来处理。

解题代码(Python3)

class Solution:
    def multiply(self, num1: str, num2: str) -> str:
        res = 0
        locx = 1
        for x in num1[::-1]:
            locy = 1
            for y in num2[::-1]:
                res += int(x) * int(y) * locx * locy
                locy *= 10
            locx *= 10
        return str(res)

思路:

分别用locx和locy表示当前所在位(1代表个位数,2代表十位数以此类推),固定第一个字符的位数,将其与第二个字符中所有位置进行乘法(需要提前转换成int),然后将其存入res;之后遍历第一个字符的其他位置即可。

注意返回的res要通过str()方法转换成字符类型。

复杂度分析:

  • 时间复杂度O(n^2) 双重循环
  • 空间复杂度O(1)

运行结果:

在这里插入图片描述


本文链接: http://www.dtmao.cc/news_show_2000236.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?