Problem Statement
Given two non-negative integersnum1
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.
Link to GitHub :Code
Example
9 + 2=11
Solution
- We need 3 variables x, y and carry (Needed if there is a carry during addition).
- Stringbuilder is used to append the string
- We convert the string variable to integer and add all the varibles (x+y+carry%10)
- Reverse the string
public static String Get(String num1,String num2) { StringBuilder sb= new StringBuilder(); int carry=0; for(int i=num1.length()-1,j=num2.length()-1;i>=0||j>=0||carry ==1;i--,j--) { //Fetches the string which needs to be added.
//This needed when carry=1 int x=i<0?0:num1.charAt(i)-'0'; int y=j<0?0:num2.charAt(j)-'0'; //Append the string varaible sb.append((x+y+carry)%10); //This variable is needed for carrying carry=(x+y+carry)/10; } return sb.reverse().toString(); }
No comments:
Post a Comment