leetcode:字串相乘(java)
package LeetCode;
import java.util.ArrayList;
import java.util.List;
public class Multiply {
/*
思路:乘法運算的時候每一個都要相乘也就是n*n 當被乘數到達第二位的時候乘以乘數的第一位就要寫到第二位開始由此得到
結果擺放的位置按i+j
*/
public String multiply(String num1, String num2) {
StringBuilder res = new StringBuilder();
char[] a = num1.toCharArray();
char[] b = num2.toCharArray();
if ((num1.length()==1&&num1.equals("0"))||(num2.length()==1&&num2.equals("0")))return "0";
//兩數相乘最大不會超過兩位相加的位數
int[] result = new int[a.length + b.length];
//兩數倒向相乘
for (int i = a.length-1; i >=0; i--) {
for (int j=b.length-1; j >=0; j--) {
result[a.length-1-i + b.length-1-j]+= (a[i] - 48) * (b[j] - 48);
}
}
for (int i = 0; i < result.length - 1; i++) {
if (result[i] >= 10) {
result[i + 1] += result[i] / 10;
result[i] = result[i] % 10;
}
}
//從前向後判斷是否可以讀取也就是第一位是不是為零
boolean juge = false;
for (int i = result.length - 1; i >= 0; i--) {
if (result[i] != 0) {
juge = true;
}
if (juge) {
res.append(result[i]);
}
}
return res.toString();
}
public static void main(String[] args) {
Multiply a = new Multiply();
System.out.println(a.multiply("0",
"0"));
}
}
相關文章
- LeetCode-043-字串相乘LeetCode字串
- 字串相乘字串
- 字串相乘——求字串的乘積字串
- 力扣oj-字串相乘力扣字串
- 力扣#43 字串相乘(C++)力扣字串C++
- 【每週例題】力扣 C++ 字串相乘力扣C++字串
- 【LeetCode】1417. 重新格式化字串(Java)LeetCode字串Java
- Java大數相乘(使用BigInteger和BigDecimal)JavaDecimal
- 十字相乘與雙十字相乘
- 矩陣相乘矩陣
- LeetCode-415-字串相加LeetCode字串
- LeetCode 394 字串解碼LeetCode字串
- leetcode 87 擾亂字串LeetCode字串
- 【LeetCode_344】反轉字串_Python&Java_雙指標解法LeetCode字串PythonJava指標
- LeetCode-344-反轉字串LeetCode字串
- LeetCode-097-交錯字串LeetCode字串
- LeetCode 567. 字串的排列LeetCode字串
- 【LeetCode】796. 旋轉字串LeetCode字串
- LeetCode 205. 同構字串LeetCode字串
- [Leetcode]394.字串解碼LeetCode字串
- LeetCode初級-反轉字串LeetCode字串
- java字串Java字串
- 【ALGO】Leetcode 97.交錯字串GoLeetCode字串
- 【LeetCode】初級演算法:字串LeetCode演算法字串
- LeetCode-824. Goat Latin(字串分割)LeetCodeGo字串
- LeetCode 387. 字串中的第一個唯一字元 (Java)LeetCode字串字元Java
- leetcode 1525 字串的好分割數目(雜湊表,字串分割)LeetCode字串
- java------字串Java字串
- Java™ 教程(字串)Java字串
- [leetcode 87 擾亂字串] [剪枝搜尋]LeetCode字串
- LeetCode-459-重複的子字串LeetCode字串
- 每日一道Leetcode——上升下降字串LeetCode字串
- LeetCode-8. 字串轉整數 (atoi)LeetCode字串
- 大數相乘解決方案
- JAVA字串轉日期或日期轉字串Java字串
- Q34 LeetCode344 反轉字串LeetCode字串
- LeetCode-434-字串中的單詞數LeetCode字串
- 【leetcode】28. Implement strStr() 字串匹配KMP BMLeetCode字串匹配KMP