LeetCode No43. 字符串相乘
题目
定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。
注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。
示例 1:
输入: num1 = "2", num2 = "3"
输出: "6"
示例 2:
输入: num1 = "123", num2 = "456"
输出: "56088"
提示:
1 <= num1.length, num2.length <= 200
num1 和 num2 只能由数字组成。
num1 和 num2 都不包含任何前导零,除了数字0本身。
思路
手写大数乘法,注意前导0。
AC代码
点击查看代码
class Solution {
public String multiply(String num1, String num2) {
if (num1.equals("0") || num2.equals("0")) {
return "0";
}
char[] char1 = num1.toCharArray();
char[] char2 = num2.toCharArray();
int len = char1.length + char2.length;
int[] result = new int[len];
for (int i = 0; i < char1.length; i++){
for (int j = 0; j < char2.length; j++){
result[i + j + 1] += (int)(char1[i]-'0') * (int)(char2[j]-'0');
}
}
for(int k = result.length-1; k > 0; k--){
result[k - 1] += result[k] / 10;
result[k] %= 10;
}
int index = result[0] == 0 ? 1 : 0;
StringBuffer ans = new StringBuffer();
while (index < len) {
ans.append(result[index]);
index++;
}
return ans.toString();
}
}
低调做人,高调做事。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2016-05-17 ACM题目————STL + 全排列
2016-05-17 ACM题目———— 一种排序(STL之set)