415. Add Strings
Easy
Given two non-negative integers,
num1
and num2
represented as string, return the sum of num1
and num2
as a string.You must solve the problem without using any built-in library for handling large integers (such as
BigInteger
). You must also not convert the inputs to integers directly.Example 1:
Input: num1 = "11", num2 = "123"
Output:
"134"
Example 2:
Input: num1 = "456", num2 = "77"
Output:
"533"
Example 3:
Input: num1 = "0", num2 = "0"
Output:
"0"
Constraints:
1 <= num1.length, num2.length <= 104
num1
andnum2
consist of only digits.num1
andnum2
don't have any leading zeros except for the zero itself.
首先將兩個數字字串變成一樣的位數,避免遍歷字串的時候還要處理長度不一的問題。接下來進行加法、byte、int 與 string 之間的轉換即可。
Runtime: 3 ms, faster than 77.07%
Memory Usage: 7 MB, less than 57.33%
func addStrings(num1 string, num2 string) string {
ans := ""
if len(num1)>len(num2) { num2 = appendZero(num2, len(num1)-len(num2)) }
if len(num1)<len(num2) { num1 = appendZero(num1, len(num2)-len(num1)) }
carry := 0
for i:= len(num1)-1; i>=0; i-- {
num := int (num1[i]-'0') + int(num2[i]-'0') + carry
carry = num / 10
ans = string( num % 10 + '0' ) + ans
}
if carry == 1 { ans = "1" + ans }
return ans
}
func appendZero(s string, n int) string {
for n>0 {
s = "0" + s
n--
}
return s
}