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

求解代码

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();
}
相关推荐
折哥的程序人生 · 物流技术专研6 小时前
Java面试85题图解版 · 特别篇:2026后端高频面试题复盘(算法底层逻辑+高并发架构设计全解析,附Java实战代码)
java·网络·数据库·算法·面试
一条泥憨鱼7 小时前
【Redis】数据类型和常用命令
java·数据库·redis·后端·缓存
云烟成雨TD7 小时前
Spring AI Alibaba 1.x 系列【78】沙箱(Sandbox)
java·人工智能·spring
程序员二叉7 小时前
【Java】 异常高频面试题精讲 | 易错点+对比总结
java·开发语言·面试
周航宇JoeZhou7 小时前
JB3-9-SpringAI(二)
java·ai·agent·多智能体·调度·智能体·观察
好家伙VCC8 小时前
Web Components主题热切换方案揭秘
java·前端
慕木沐8 小时前
Google ADK Java 1.0版本 核心机制与实战 Demo
java·开发语言·python
想吃火锅10058 小时前
【leetcode】14.最长公共前缀js
算法·leetcode·职场和发展
焦虑的说说9 小时前
秒杀系统设计方案
java
云絮.9 小时前
数据库操作
数据库·mysql·算法·oracle