Wednesday, June 14, 2017

Add Strings

Problem Statement

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.
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();
  
 }

Iterations


No comments:

Post a Comment