字符串相乘

求解代码

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();
        }
相关推荐
蜡台9 小时前
Android Gradle 项目下载编译失败解决---持续更新
android·java·kotlin·gradle
迈巴赫车主9 小时前
天梯赛 L2-004 这是二叉搜索树吗?java
java·开发语言·数据结构·算法·天梯赛
moonlight03049 小时前
对象组成、分配、强弱引用
jvm
一叶飘零_sweeeet9 小时前
从 GC 频繁到毫秒级停顿:JVM 内存调优分代配比、晋升机制与架构策略全拆解
jvm
JMchen1239 小时前
跨技术栈:在Flutter/Compose中应用自定义View思想
java·经验分享·flutter·canvas·dart·自定义view
黄昏晓x9 小时前
C++11
android·java·c++
Java水解9 小时前
RUST异步并发安全与内存管理的最佳实践
java·后端·面试
李白的粉9 小时前
基于springboot的论坛网站
java·spring boot·毕业设计·课程设计·论坛网站
2401_8535765010 小时前
使用PyTorch构建你的第一个神经网络
jvm·数据库·python
Hvitur10 小时前
eclipse新建SpringBoot项目
java·spring boot·eclipse