1. leetcode题目
2. 解题思路
- 思路
3. Java代码实现
import java.util.Arrays;
public class leetcode_0043 {
public static void main(String[] args) {
String s1 = "888";
String s2 = "436";
System.out.println(multiply(s1, s2));
}
public static String multiply(String s1, String s2) {
int[][] flag = new int[s2.length()][s1.length() + s2.length() - 1];
int x = 0;
int y = flag[0].length - 1;
for (int i = s2.length() - 1; i >= 0; i--) {
int y_jump = y;
for (int k = s1.length() - 1; k >= 0; k--) {
flag[x][y_jump] = Integer.valueOf(s2.charAt(i) + "") * Integer.valueOf(s1.charAt(k) + "");
y_jump--;
}
System.out.println(Arrays.toString(flag[x]));
x++;
y--;
}
int[] nums = new int[flag[0].length];
int yu_shu = 0;
for (int i = flag[0].length - 1; i >= 0; i--) {
int sum_jump = 0;
for (int j = 0; j < flag.length; j++) {
sum_jump += flag[j][i];
}
sum_jump += yu_shu;
nums[i] = sum_jump % 10;
yu_shu = sum_jump / 10;
}
StringBuilder sb = new StringBuilder();
sb.append(yu_shu);
for(int i = 0; i < nums.length; i++){
sb.append(nums[i]);
}
while(true){
if(sb.charAt(0) != '0'){
break;
}
sb.deleteCharAt(0);
if(sb.toString().isEmpty()){
return "0";
}
}
return sb.toString();
}
}