LeetCode - 415. Add Strings
Given two non-negative numbers num1
and num2
represented as string, return the sum of num1
and num2
.
Note:
- The length of both
num1
andnum2
is < 5100. - Both
num1
andnum2
contains only digits0-9
. - Both
num1
andnum2
does not contain any leading zero. - You must not use any built-in BigInteger library or convert the inputs to integer directly.
import java.util.*; public class Solution { public String addStrings(String num1, String num2) { if (num1.length() == 1 && num2.length() == 1) { return (int)(((int)num1.charAt(0) + (int)num2.charAt(0)) - 2*(int)'0')+""; } int maxLen = Math.max(num1.length(), num2.length()); int[] numArr1 = new int[maxLen]; int[] numArr2 = new int[maxLen]; for (int i=0; i<num1.length(); i++) { numArr1[i] = num1.charAt(num1.length()-i-1) - '0'; } for (int i=0; i<num2.length(); i++) { numArr2[i] = num2.charAt(num2.length()-i-1) - '0'; } char[] sum = new char[maxLen+1]; int carry = 0; for (int i=0; i<maxLen; i++) { sum[i] = (char)((numArr1[i] + numArr2[i] + carry)%10 + (int)'0'); carry = (numArr1[i] + numArr2[i] + carry) / 10; } sum[maxLen] = (char)(carry+'0'); int noz = maxLen; while (sum[noz--] == '0'); StringBuilder ret = new StringBuilder(); for (int i=noz+1; i>=0; i--) { ret.append(sum[i]); } return ret.toString(); } }
作者:Pickle
声明:对于转载分享我是没有意见的,出于对博客园社区和作者的尊重一定要保留原文地址哈。
致读者:坚持写博客不容易,写高质量博客更难,我也在不断的学习和进步,希望和所有同路人一道用技术来改变生活。觉得有点用就点个赞哈。