# 這道題想法是很簡單的,但是我代碼寫起來就寫了很多,
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")
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/69459.html
標籤:Python
上一篇:面向物件編程——基于此思想寫程式,初始化方法,屬性查找
下一篇:學習Java后會面對啥!!
