字串相加,思想就是:
從低位加到高位,逢十進一
如何逢十進一,設定乙個標誌位flag,表示進製,僅為的大小為整除10,對10的餘數則為此位上的數
//412.
string addstrings
(string num1, string num2)
for(
int i = sub -
1; i >=0;
--i)
if(flag ==1)
result +
='1'
;reverse
(result.
begin()
, result.
end())
;return result;
}
如果按照python,可以直接轉為str—>int,但是,按照演算法角度寫:
def
addstrings
(self, num1:
str, num2:
str)
->
str:
iflen
(num1)
<
len(num2)
: num1, num2 = num2, num1
sub, flag =
len(num1)
-len
(num2),0
result =
""for i in
range
(len
(num2)-1
,-1,
-1):
temp =
int(num2[i])+
int(num1[i + sub]
)+ flag
flag = temp //
10 result +=
str(temp%10)
for i in
range
(sub-1,
-1,-
1): temp =
int(num1[i]
)+flag
flag=temp //
10 result+=
str(temp%10)
if flag==1:
result +=
'1'return result[::
-1]
LeetCode 415 字串相加
給定兩個字串形式的非負整數 num1 和num2 計算它們的和。注意 num1 和num2 的長度都小於 5100.num1 和num2 都只包含數字 0 9.num1 和num2 都不包含任何前導零。你不能使用任何內建 biginteger 庫,也不能直接將輸入的字串轉換為整數形式。利用字元流,將...
LeetCode 415 字串相加
給定兩個字串形式的非負整數 num1 和num2 計算它們的和。注意 num1 和num2 的長度都小於 5100.num1 和num2 都只包含數字 0 9.num1 和num2 都不包含任何前導零。你不能使用任何內建 biginteger 庫,也不能直接將輸入的字串轉換為整數形式。無 class...
LeetCode 415 字串相加
題目 給定兩個字串形式的非負整數 num1 和num2 計算它們的和。注意 num1 和num2 的長度都小於 5100.num1 和num2 都只包含數字 0 9.num1 和num2 都不包含任何前導零。你不能使用任何內建 biginteger 庫,也不能直接將輸入的字串轉換為整數形式。原始碼 ...