1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| class Solution { public String addStrings(String num1, String num2) { int len1 = num1.length(), len2 = num2.length(); int i1 = len1 - 1, i2 = len2 - 1; char[] s1 = num1.toCharArray(); char[] s2 = num2.toCharArray(); StringBuilder ans = new StringBuilder(); int cin = 0; while (i1 >= 0 || i2 >= 0 || cin == 1) { int n1 = 0, n2 = 0, sum = 0; if (i1 >= 0) { n1 = s1[i1] - '0'; i1--; } if (i2 >= 0) { n2 = s2[i2] - '0'; i2--; } sum = n1 + n2 + cin; cin = 0; if (sum >= 10) { sum -= 10; cin = 1; } ans.append(sum); }
return ans.reverse().toString(); } }
|