zoukankan      html  css  js  c++  java
  • 415. 字符串相加

    给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。

    注意:
    num1 和num2 的长度都小于 5100.
    num1 和num2 都只包含数字 0-9.
    num1 和num2 都不包含任何前导零。
    你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。


     
     1 class Solution(object):
     2     def addStrings(self, num1, num2):
     3         """
     4         :type num1: str
     5         :type num2: str
     6         :rtype: str
     7         """
     8         if num1 == "0" or num2 == "0":
     9             return num1 if num2 == "0" else num2
    10         # 保证a串短,以a串为准进行遍历
    11         if len(num1) > len(num2):
    12             num1, num2 = num2, num1
    13         # 反转
    14         num1 = num1[::-1]
    15         num2 = num2[::-1]
    16         # 两串长度统一
    17         while len(num1) < len(num2):
    18             num1 += "0"
    19         print(num1, num2)
    20 
    21         # 开始运算
    22         result = ""
    23         # 进位
    24         extra = 0
    25         for index, num in enumerate(num1):
    26             ans = (int(num) + int(num2[index]) + extra) % 10
    27             # 判断进位
    28             if int(num) + int(num2[index]) + extra >= 10:
    29                 extra = 1
    30             else:
    31                 extra = 0
    32             result += str(ans)
    33         # 只用判断最高位有进位,不用判断无进位情况
    34         if extra == 1:
    35             result += "1"
    36         return result[::-1]
    37 
    38 
    39 if __name__ == '__main__':
    40     solution = Solution()
    41     print(solution.addStrings("123001", "456"))
    42     print(solution.addStrings("1", "9"))
    
    
    
     
  • 相关阅读:
    最全Redis面试题
    mabatisplus-update
    windows下安装redis并部署服务
    登录方案
    redis
    IntelliJ IDEA Debug模式启动项目
    物流跟踪 调用快递鸟API
    springboot中文官方文档
    国内物流地址
    什么是电磁兼容?什么是EMC设计?
  • 原文地址:https://www.cnblogs.com/panweiwei/p/12682154.html
Copyright © 2011-2022 走看看