字符串相乘

求解代码

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();
        }
相关推荐
DokiDoki之父2 小时前
边写软件边学kotlin(一):Kotlin语法初认识:
android·开发语言·kotlin
东东5162 小时前
OA自动化居家办公管理系统 ssm+vue
java·前端·vue.js·后端·毕业设计·毕设
没有bug.的程序员2 小时前
Spring Cloud Alibaba:Nacos 配置中心与服务发现的工业级深度实战
java·spring boot·nacos·服务发现·springcloud·配置中心·alibaba
REDcker2 小时前
Telegram Android 源码解析完整文档
android
Big Cole2 小时前
PHP面试题(核心基础篇:垃圾回收+自动加载)
android·开发语言·php
rainbow68892 小时前
Java并发三要素:原子性、可见性、有序性
java
2301_822375442 小时前
Python虚拟环境(venv)完全指南:隔离项目依赖
jvm·数据库·python
2301_790300962 小时前
Python类型提示(Type Hints)详解
jvm·数据库·python
小罗和阿泽2 小时前
复习 Java(2)
java·开发语言