415. Add Strings

来源:互联网 发布:c语言 最长单词 编辑:程序博客网 时间:2024/06/05 15:00

Given two non-negative integers num1 and num2 represented as string, return the sum of num1 and num2.

Note:

  1. The length of both num1 and num2 is < 5100.
  2. Both num1 and num2 contains only digits 0-9.
  3. Both num1 and num2 does not contain any leading zero.
  4. 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