415字符串相加

# 这道题想法是很简单的,但是我代码写起来就写了很多。
class Solution:
def addStrings(self, num1: str, num2: str) -> str:
# 保证num1是字符串长的那个
if len(num1) < len(num2) :
num1,num2 = num2,num1
# 定义变量用来表示当前数和进位数。
sum_num,jinwei_num = 0,0
# 定义一个字符串接收最后算出来的结果。
num_str = ""
index1,index2 = len(num1) - 1,len(num2) - 1
# 首先两个字符串对应位数相加
while index2 >= 0:
# 两个字符串,加上进位数字
sum_num = int(num1[index1]) + int(num2[index2]) + jinwei_num
# 求出进位数字
jinwei_num = sum_num // 10
# 求出当前为数字
sum_num = sum_num % 10
# 然后写入字符串中
num_str = str(sum_num) + num_str
# 将当前为数字重新定义为零
sum_num = 0
# 指针遍历
index2 -= 1
index1 -= 1
# num2已经遍历完成,此时num1可能已经遍历完成,
# 但也可能还有很多。需要继续遍历相加。
# 这里的代码和上边的那个相同,自己看下
while index1 >= 0:
sum_num = 0
sum_num = int(num1[index1]) + jinwei_num
jinwei_num = sum_num // 10
sum_num = sum_num % 10
num_str = str(sum_num) + num_str
index1 -= 1
# 这里判断进位是否为零,不为零的话要加上进位数字。
if jinwei_num != 0:
num_str = str(jinwei_num) + num_str
return num_str
A = Solution()
A.addStrings("1111","565511")
posted @ 2020-08-03 20:42  月为暮  阅读(179)  评论(0编辑  收藏  举报