【字节面试手撕】大数加法

求解代码

java 复制代码
public String solve(String s, String t) {
    // 如果第一个字符串为空/长度为0,直接返回第二个字符串
    if(s.length()<=0){
        return t;
    }
    // 如果第二个字符串为空/长度为0,直接返回第一个字符串
    if(t.length()<=0){
        return s;
    }

    int i = s.length()-1;

    int j = t.length()-1;
    // 定义进位变量tmp
    int tmp = 0;
    // 定义StringBuilder拼接结果
    StringBuilder sb = new StringBuilder();

    // 需要注意:最后一位相加仍有进位时,需把进位1也拼接到结果
    while (i>=0||j>=0||tmp!=0) {

        tmp += i>=0?s.charAt(i--)-'0':0;

        tmp += j>=0?t.charAt(j--)-'0':0;
        
        // 取余10:得到当前位的计算结果
        sb.append(tmp%10);
        // 除以10:更新进位值
        tmp=tmp/10;
    }
    // 结果逆序:因为是从个位开始拼接,需要反转回正序,再转字符串返回
    return sb.reverse().toString();
}
相关推荐
亦暖筑序7 小时前
AI 客服系统安全加固:JWT 鉴权 + Bucket4j 三层限流
java·架构
Run_Teenage7 小时前
算法:离散化模板
算法
乐迪信息7 小时前
乐迪信息:实时预警,秒级响应:船舶AI异常行为检测算法
大数据·人工智能·算法·安全·目标跟踪
6Hzlia7 小时前
【Hot 100 刷题计划】 LeetCode 15. 三数之和 | C++ 排序+双指针
c++·算法·leetcode
xhuiting7 小时前
项目技术总结
java
某人辛木7 小时前
JDK安装配置
java·开发语言
fox_lht7 小时前
第十章 通用集合
开发语言·后端·算法·rust
counting money7 小时前
Spring框架基础(依赖注入-全注解形式)
java·数据库·spring
小王师傅667 小时前
【Java结构化梳理】泛型-初步了解-下
java·开发语言
新新学长搞科研7 小时前
【高质量能源会议推荐】第十一届能源与环境研究进展国际学术会议(ICAEER 2026)
人工智能·物联网·算法·机器学习·能源·环境·新能源