1
1
package com .fishercoder .solutions ;
2
2
3
3
/**
4
+ * 415. Add Strings
5
+ *
4
6
* Given two non-negative numbers num1 and num2 represented as string, return the sum of num1 and num2.
5
7
6
8
Note:
7
9
8
- The length of both num1 and num2 is < 5100.
9
- Both num1 and num2 contains only digits 0-9.
10
- Both num1 and num2 does not contain any leading zero.
11
- You must not use any built-in BigInteger library or convert the inputs to integer directly.
10
+ 1. The length of both num1 and num2 is < 5100.
11
+ 2. Both num1 and num2 contains only digits 0-9.
12
+ 3. Both num1 and num2 does not contain any leading zero.
13
+ 4. You must not use any built-in BigInteger library or convert the inputs to integer directly.
12
14
*/
13
15
public class _415 {
14
16
15
- public static String addStrings (String num1 , String num2 ) {
16
- if (num1 == null || num1 .length () == 0 ) {
17
- return num2 ;
18
- } else if (num2 == null || num2 .length () == 0 ) {
19
- return num1 ;
20
- }
17
+ public static class Solution1 {
18
+ public String addStrings (String num1 , String num2 ) {
19
+ if (num1 == null || num1 .length () == 0 ) {
20
+ return num2 ;
21
+ } else if (num2 == null || num2 .length () == 0 ) {
22
+ return num1 ;
23
+ }
21
24
22
- int i = num1 .length () - 1 ;
23
- int j = num2 .length () - 1 ;
24
- long carry = 0 ;
25
- long sum = 0 ;
26
- StringBuilder sb = new StringBuilder ();
27
- char [] char1 = num1 .toCharArray ();
28
- char [] char2 = num2 .toCharArray ();
29
- while (i >= 0 || j >= 0 ) {
30
- sum = carry ;
31
- if (i >= 0 ) {
32
- sum += Character .getNumericValue (char1 [i --]);
25
+ int i = num1 .length () - 1 ;
26
+ int j = num2 .length () - 1 ;
27
+ long carry = 0 ;
28
+ long sum = 0 ;
29
+ StringBuilder sb = new StringBuilder ();
30
+ char [] char1 = num1 .toCharArray ();
31
+ char [] char2 = num2 .toCharArray ();
32
+ while (i >= 0 || j >= 0 ) {
33
+ sum = carry ;
34
+ if (i >= 0 ) {
35
+ sum += Character .getNumericValue (char1 [i --]);
36
+ }
37
+ if (j >= 0 ) {
38
+ sum += Character .getNumericValue (char2 [j --]);
39
+ }
40
+ carry = sum / 10 ;
41
+ sb .append (sum % 10 );
33
42
}
34
- if (j > = 0 ) {
35
- sum += Character . getNumericValue ( char2 [ j --] );
43
+ if (carry ! = 0 ) {
44
+ sb . append ( carry );
36
45
}
37
- carry = sum / 10 ;
38
- sb .append (sum % 10 );
39
- }
40
- if (carry != 0 ) {
41
- sb .append (carry );
42
- }
43
46
44
- return sb .reverse ().toString ();
47
+ return sb .reverse ().toString ();
48
+ }
45
49
}
46
50
47
51
}
0 commit comments