| 123456789101112131415161718192021222324252627282930 | 
							- func addStrings(num1 string, num2 string) string {
 
- 	m, n := len(num1), len(num2)
 
- 	n1, n2 := []rune(num1), []rune(num2)
 
- 	if m < n {
 
- 		m, n = n, m
 
- 		n1, n2 = n2, n1
 
- 	}
 
- 	carry := '0'
 
- 	for i, j := m-1, n-1; 0 <= i; i, j = i-1, j-1 {
 
- 		var b rune
 
- 		if j < 0 {
 
- 			if carry == '0' {
 
- 				break
 
- 			}
 
- 			b = '0'
 
- 		} else {
 
- 			b = n2[j]
 
- 		}
 
- 		n1[i], carry = add(n1[i], b, carry)
 
- 	}
 
- 	if carry != '0' {
 
- 		return "1" + string(n1)
 
- 	}
 
- 	return string(n1)
 
- }
 
- func add(a, b, c rune) (rune, rune) {
 
- 	num := a + b + c - 144 // 3 * '0'
 
- 	return num%10 + '0', num/10 + '0'
 
- }
 
 
  |