Given two non-negative integers num1 and num2 represented as string, return the sum of num1 and num2.
Note:
- The length of both num1 and num2 is < 5100.
- Both num1 and num2 contains only digits 0-9.
- Both num1 and num2 does not contain any leading zero.
- You must not use any built-in BigInteger library or convert the inputs to integer directly.
代码实现
public string AddStrings(string num1, string num2)
{
StringBuilder sb = new StringBuilder();
int carryBit = 0; //carry bit
for (int i = num1.Length - 1, j = num2.Length - 1;
i >= 0 || j >= 0 || carryBit == 1; i--, j--) //think: num1=3, num2=9
{
int x = i < 0 ? 0 : charToInt(num1[i]);
int y = j < 0 ? 0 : charToInt(num2[j]);
sb.Append((x + y + carryBit) % 10);
carryBit = (x + y + carryBit) / 10;
}
char[] chars = sb.ToString().Reverse().ToArray();
return new string(chars);
}
private int charToInt(char c)
{
return c - '0';
}
leetcode-solution库
leetcode算法题目解决方案每天更新在github库中,欢迎感兴趣的朋友加入进来,也欢迎star,或pull request。https://github.com/jackzhenguo/leetcode-csharp