博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode:字符串相加【415】
阅读量:5241 次
发布时间:2019-06-14

本文共 1733 字,大约阅读时间需要 5 分钟。

LeetCode:字符串相加【415】

题目描述

给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。

注意:

num1 和num2 的长度都小于 5100.

num1 和num2 都只包含数字 0-9.
num1 和num2 都不包含任何前导零。
你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。

题目分析

  这道题其实很简单,我们要搞清楚手工计算两数之和的流程。两数相加,和如果大于10的话就有进位,进位最高为1,默认为0,该位相加的和应为sum%10

  小学数学题哦,不多解释了!

Java题解

public static String addStrings(String num1, String num2) {        int ptrNum1 = num1.length()-1 ;        int ptrNum2 = num2.length()-1 ;        int count = 0;        StringBuilder result = new StringBuilder();        //1、从两数个位开始相加        while(ptrNum1>=0&&ptrNum2>=0){            //[a、换算成数字]            int a = num1.charAt(ptrNum1)-'0';            int b = num2.charAt(ptrNum2)-'0';            //[b、计算位数之和,包含进位count]            int sum = a+b+count;            count = 0;            //[c、如果和大于9,则有新进位]            if(sum>9){                count =1;                sum-=10;            }            //[d、将处理后sum插入结果]            result.insert(0,sum);            ptrNum1--;            ptrNum2--;        }        //2、假如数字1还有高位未相加        while(ptrNum1>=0){            //[a、仅仅与进位值相加]            int a =num1.charAt(ptrNum1)-'0'+count;            count = 0;            if(a>=10){                count =1;                a-=10;            }            //[b、将处理后sum插入结果]            result.insert(0,a);            ptrNum1--;        }        //3、加入数字2还有高位未相加        while(ptrNum2>=0){            int a =num2.charAt(ptrNum2)-'0'+count;            count = 0;            if(a>10){                count =1;                a-=10;            }            result.insert(0,a);            ptrNum2--;        }        //4、考虑最高位进位的情况        if(count==1)            result.append("1");        return result.toString();    }

  

 

转载于:https://www.cnblogs.com/MrSaver/p/11609516.html

你可能感兴趣的文章
Vue
查看>>
python-三级菜单和购物车程序
查看>>
条件断点 符号断点
查看>>
VMware12 + Ubuntu16.04 虚拟磁盘扩容
查看>>
水平垂直居中
查看>>
MySQL简介
查看>>
设计模式之桥接模式(Bridge)
查看>>
jquery的$(document).ready()和onload的加载顺序
查看>>
Python Web框架Django (五)
查看>>
.net学习之继承、里氏替换原则LSP、虚方法、多态、抽象类、Equals方法、接口、装箱拆箱、字符串------(转)...
查看>>
【codevs1033】 蚯蚓的游戏问题
查看>>
【程序执行原理】
查看>>
python的多行注释
查看>>
连接Oracle需要jar包和javadoc文档的下载
查看>>
UVA 10976 - Fractions Again?!
查看>>
Dreamweaver cc新版本css单行显示
查看>>
【android】安卓的权限提示及版本相关
查看>>
JavaScript可否多线程? 深入理解JavaScript定时机制
查看>>
IOS基础学习
查看>>
PHP 导出 Excell
查看>>