Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 494198f

Browse files
authored
Update Multiply Strings.java
1 parent cca4b89 commit 494198f

File tree

1 file changed

+19
-21
lines changed

1 file changed

+19
-21
lines changed

Medium/Multiply Strings.java

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,33 @@
11
class Solution {
2-
public String multiply(String num1, String num2) {
3-
int m = num1.length();
4-
int n = num2.length();
5-
int[] ans = new int[m + n];
6-
int idx = ans.length - 1;
2+
public String multiply(String num1, String num2) {
3+
int[] result = new int[num1.length() + num2.length() + 1];
4+
int idx = result.length - 1;
75
for (int i = num1.length() - 1; i >= 0; i--) {
86
int currIdx = idx;
97
int carry = 0;
108
for (int j = num2.length() - 1; j >= 0; j--) {
11-
int temp = (
12-
ans[currIdx] + Character.getNumericValue(num1.charAt(i)) * Character.getNumericValue(num2.charAt(j)) + carry
13-
);
14-
carry = temp > 9 ? temp / 10 : 0;
15-
temp = temp > 9 ? temp % 10 : temp;
16-
ans[currIdx--] = temp;
9+
int currValue =
10+
carry + Character.getNumericValue(num1.charAt(i)) * Character.getNumericValue(
11+
num2.charAt(j)) + result[currIdx];
12+
carry = currValue / 10;
13+
currValue = currValue % 10;
14+
result[currIdx--] = currValue;
1715
}
1816
while (carry > 0) {
19-
int temp = ans[currIdx] + carry;
20-
carry = temp > 9 ? temp / 10 : 0;
21-
temp = temp > 9 ? temp % 10 : temp;
22-
ans[currIdx--] = temp;
17+
int currValue = carry + result[currIdx];
18+
carry = currValue / 10;
19+
currValue = currValue % 10;
20+
result[currIdx--] = currValue;
2321
}
2422
idx--;
2523
}
26-
int zeroIdx = 0;
27-
while (zeroIdx < ans.length && ans[zeroIdx] == 0) {
28-
zeroIdx++;
29-
}
3024
StringBuilder sb = new StringBuilder();
31-
while (zeroIdx < ans.length) {
32-
sb.append(ans[zeroIdx++]);
25+
int resultIdx = 0;
26+
while (resultIdx < result.length && result[resultIdx] == 0) {
27+
resultIdx++;
28+
}
29+
while (resultIdx < result.length) {
30+
sb.append(result[resultIdx++]);
3331
}
3432
return sb.length() == 0 ? "0" : sb.toString();
3533
}

0 commit comments

Comments
 (0)