Day11-415. Add Strings

今日第一题:415. Add Strings

Given two non-negative integers, num1 and num2 represented as string, return the sum of num1 and num2 as a string.

You must solve the problem without using any built-in library for handling large integers (such as BigInteger). You must also not convert the inputs to integers directly.

切记题目不可使用 int() 直接对input进行转换!!

思路:

  • chr() : 把ASCII中的数字转为字元
  • ord() : 将字元转为ASCII

不使用int() 获得integers的方法:使用ord()将字元转为ASCII,再将结果和ord('0')相减,即可得到int(字元)

使用上述方法获得各个integer
因为字串会由最大位元数开始读取,所以我们设定一个result,设定其初值为零,
下一次recursive时,会乘上十倍,即往前一位数

My solution

class Solution:
    def addStrings(self, num1: str, num2: str) -> str:
        result1 = 0
        result2 = 0
        for i in num1:
            result1 = 10*result1 + ord(i) - ord('0')
        for j in num2:
            result2 = 10*result2 + ord(j) - ord('0')
        return str(result1+result2)

Result

https://ithelp.ithome.com.tw/upload/images/20210926/20140843oxDmiutcwX.png

後来发现也可以使用function,这样可以免於写两次一样的东西

class Solution:
    def addStrings(self, num1: str, num2: str) -> str:
        def str2int(num):
            result = 0
            for i in num:
                result = 10*result + ord(i) - ord('0')
            return result
        return str(str2int(num1)+str2int(num2))

本来今天还想写 706. Design HashMap,目前尚在理解self用法(很菜啦哈哈哈)


<<:  【Day26】Function Component 生命周期 & Hook (´・∀・`)

>>:  Day26 切版笔记- 方块酥版面

Day-01 一个从零开始转职程序工程师的故事

这张照片是程序视讯课的背景图,3月时在山上人家拍的樱花 相信这类的转职故事大家应该看过很多吧? 但...

JS this DAY64

this 看到这个是不是很头痛??? 但别怕 接着往下看 this 基本观念 每个执行环境都有属於自...

[Angular] Day30. Angular Module(一)

在 Angular 中应用程序是模块化的,Angular 有自己的模块化系统称为 NgModule,...

Day 30 结语和 Azure 的学习资源- 打完魔王之後的最终章通常是剧情动画

结语和 Azure 的学习资源- 打完魔王之後的最终章通常是剧情动画 从朋友开口问我 Azure 的...

【第八天 - 网页基本资讯蒐集】

Q1. 网页有哪些基本讯息? 网页中时常夹带版本相关资讯,例如网站开发时所使用的框架、Library...