字符串相乘

求解代码

java 复制代码
public String multiply(String num1, String num2) {
            if ("0".equals(num1) || "0".equals(num2)) {
                return "0";
            }

            int len1 = num1.length();
            int len2 = num2.length();
            int[] res = new int[len1 + len2];

            // 从后往前遍历
            for (int i = len1 - 1; i >= 0; i--) {
                int n1 = num1.charAt(i) - '0';
                for (int j = len2 - 1; j >= 0; j--) {
                    int n2 = num2.charAt(j) - '0';
                    int sum = n1 * n2 + res[i + j + 1]; // 加上原来的低位
                    res[i + j + 1] = sum % 10;
                    res[i + j] += sum / 10;
                }
            }

            StringBuilder sb = new StringBuilder();
            for (int num : res) {
                if (!(sb.length() == 0 && num == 0)) {
                    sb.append(num);
                }
            }
            return sb.length() == 0 ? "0" : sb.toString();
        }
相关推荐
三少爷的鞋3 分钟前
换个思路理解:非阻塞挂起
android
文丑颜不良啊30 分钟前
LeetCode2221~2240题目解析
java·leetcode
秋饼44 分钟前
Computer Use Agent Java 落地实战:感知-行动循环、执行器与安全围栏生产级实现
java·ai·技术分享·后端开发
好的佩奇1 小时前
蓝牙之经典蓝牙
android·flutter·蓝牙
文丑颜不良啊3 小时前
LeetCode2161~2180题目解析
java·leetcode
传奇开心果编程3 小时前
【Flutter踩坑排雷】第19课:路由硬编码坑|字符串路由书写错误,页面跳转失败排查
android·flutter·ios·移动开发·跨平台·ui框架·声明式ui
文丑颜不良啊4 小时前
LeetCode2141~2160题目解析
java·leetcode
LabVIEW开发4 小时前
LabVIEW 连接板:28 个端子怎么排,优先级怎么定
java·算法·labview
天天被压力5 小时前
【A股分钟级高频数据完全手册 #07】北交所历史分钟K线接口:京市Pro版分时批量
java·人工智能·python
天天被压力5 小时前
【A股分钟级高频数据完全手册 #08】股票日、分时数据接口对比:普通分时与Pro版差异实测
java·人工智能·python