Sum—LeetCode-415 Add Strings

来源:互联网 发布:mac卸载程序脚本 编辑:程序博客网 时间:2024/06/05 20:45

题目描述:

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

Note:

  1. The length of both num1 andnum2 is < 5100.
  2. Both num1 andnum2 contains only digits 0-9.
  3. Both num1 andnum2 does not contain any leading zero.
  4. You must not use any built-in BigInteger library orconvert the inputs to integer directly.
public String addStrings(String num1, String num2) {        int len = Math.max(num1.length(), num2.length());        char ch[] = new char[len + 1];        int i = num1.length() - 1, j = num2.length() - 1;        int c = 0, k = len;        while(i >= 0 && j >= 0){            int tempI = num1.charAt(i) - '0';            int tempJ = num2.charAt(j) - '0';            int tempSum = tempI + tempJ + c;            ch[k] = String.valueOf(tempSum % 10).charAt(0);            c = tempSum / 10;            --k;            --i;            --j;        }        while(i >= 0) {            int tempI = num1.charAt(i) - '0';            int tempSum = tempI + c;            ch[k] = String.valueOf(tempSum % 10).charAt(0);            c = tempSum / 10;            --k;            --i;        }        while(j >= 0) {            int tempJ = num2.charAt(j) - '0';            int tempSum = tempJ + c;            ch[k] = String.valueOf(tempSum % 10).charAt(0);            c = tempSum / 10;            --k;            --j;        }        int flag = 0;        if(c != 0) {            flag = 1;            ch[0] = String.valueOf(c).charAt(0);        }        String tempStr = String.valueOf(ch);        if(flag == 0)            return tempStr.substring(1);        else            return tempStr;    }


0 0