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++字串
- Java大數相乘(使用BigInteger和BigDecimal)JavaDecimal
- 【LeetCode】1417. 重新格式化字串(Java)LeetCode字串Java
- 十字相乘與雙十字相乘
- 矩陣相乘矩陣
- OpenMP版本矩陣相乘矩陣
- C#陣列相乘C#陣列
- java字串Java字串
- leetcode 87 擾亂字串LeetCode字串
- LeetCode 394 字串解碼LeetCode字串
- 【LeetCode】Word Ladder 字串LeetCode字串
- 【LeetCode_344】反轉字串_Python&Java_雙指標解法LeetCode字串PythonJava指標
- 大數相乘解決方案
- (陣列)大數相乘,相加陣列
- 長資料相乘問題
- [Leetcode]394.字串解碼LeetCode字串
- 【LeetCode】796. 旋轉字串LeetCode字串
- LeetCode初級-反轉字串LeetCode字串
- LeetCode-344-反轉字串LeetCode字串
- LeetCode-415-字串相加LeetCode字串
- LeetCode 567. 字串的排列LeetCode字串
- leetcode —— 字串相關(28、344)LeetCode字串
- Java™ 教程(字串)Java字串
- java字串解析Java字串
- java------字串Java字串
- LeetCode 205. 同構字串LeetCode字串
- 【ALGO】Leetcode 97.交錯字串GoLeetCode字串
- LeetCodet探索——陣列與字串LeetCode陣列字串
- LeetCode-097-交錯字串LeetCode字串
- 【LeetCode】初級演算法:字串LeetCode演算法字串
- LeetCode-824. Goat Latin(字串分割)LeetCodeGo字串
- 【LeetCode 28_字串_匹配】Implement strStr()LeetCode字串
- LeetCode 387. 字串中的第一個唯一字元 (Java)LeetCode字串字元Java