leetcode刷题之415.字符串相加

leetcode刷题之415.字符串相加

  • 题目
    给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
  • 注意
    1. num1 和num2 的长度都小于 5100.
    2. num1 和num2 都只包含数字 0-9.
    3. num1 和num2 都不包含任何前导零。
    4. 你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。
  • 示例
输入: 
"120"
"0"
输出: "120"
  • 代码:
class Solution(object):
    def addStrings(self, num1, num2):
        """
        :type num1: str
        :type num2: str
        :rtype: str
        """
        c = 0
        i, j = len(num1)-1,len(num2)-1
        s = ''
        while i >= 0 or j>=0 or c != 0:
            if i >= 0:
                c += ord(num1[i])-ord('0')
                i-=1
            if j >= 0:
                c += ord(num2[j])-ord('0')
                j-=1
            s += str(c % 10)
            c /= 10
        return s[::-1]
# 执行用时 : 48 ms, 在Add Strings的Python提交中击败了57.36% 的用户
# 内存消耗 : 12 MB, 在Add Strings的Python提交中击败了0.00% 的用户
  • 算法说明:
    设置一个进位c、一个num1的指针i、一个num2的指针j,分别从num1和num2的最后一位给c累加数字,然后把c的个位加在字符串s后面s += str(c % 10),十位数字赋给自己c /= 10;一直循环直到i、j、c都小于0为止。反向输出s!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

O_胡萝卜_O

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值