算法——大数加法

 

python的字符转换函数:

chr(x )                 将一个整数转换为一个字符,Ascii码   #chr(65)='A'

ord(x )                 将一个字符转换为它的整数值     #ord('A')=65 

int(x )         将x转换为一个整数                  #int('2')=2

str(x )                 将对象 x 转换为字符串    #str(2)='2'

 

以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。

(字符串长度不大于100000,保证字符串仅由'0'~'9'这10种字符组成)

示例1

输入:

"1","99"

返回值:

"100" 说明:

1+99=100

 

class Solution:
    def solve(self , s , t ):
        # write code here
        l1 = len(s)
        l2 = len(t)
        max_len = max(l1, l2)
        s = s.zfill(max_len)  #注意zfill函数返回补0后的新字符串
        t = t.zfill(max_len)
        res = ""
        flag = 0
        for i in range(max_len-1, -1, -1):
            num = int(s[i]) + int(t[i]) + flag
            if num > 9:
                flag = num//10
                res += str(num%10)
            else:
                flag = 0  #没进位需要置0
                res += str(num)
        if flag != 0:
            res += str(flag)
        res = res[::-1]
        return res
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值