算法打卡Day27_leetcode _415字符串相加

简介: 算法打卡Day27_leetcode _415字符串相加

Leetcode原题

415.字符串相加

20200401134307494.png

思路

定义一个Stringbuilder字符存储对象

设定 i,j 两指针分别指向 num1,num2 尾部,模拟人工加法;

计算 carry = tmp // 10,代表当前位相加是否产生进位;

计算 tmp = n1 + n2 + carry,并将当前位 tmp % 10 添加至 sb头部;

当指针 i或j 走过数字首部后,给 n1,n2 赋值为 00,相当于给 num1,num2 中长度较短的数字前面填 0,以便后续计算。

最近将得到的字符反转输出

方法 双指针

    public String addStrings(String num1, String num2) {
        StringBuilder sb = new StringBuilder();
        //记录进位的变量
        int carry=0;
        for (int i =num1.length()-1,j =num2.length()-1; i>=0 || j>=0 || carry ==1; i--,j--) {
            int x= i<0 ? 0: num1.charAt(i) - '0';
            int y =j<0 ? 0: num2.charAt(j) - '0';
            sb.append((x+y+carry) %10);
            carry = (x+y+ carry ) /10;
        }
        return sb.reverse().toString();
    }

有兴趣的老爷,还可以关注我的公众号【一起收破烂】,回复【006】获取 最新java面试资料以及简历模型120套哦~

相关文章
|
1月前
|
算法
Leetcode 初级算法 --- 数组篇
Leetcode 初级算法 --- 数组篇
37 0
|
3月前
|
算法
【算法】滑动窗口——找到字符串中所有字母异位词
【算法】滑动窗口——找到字符串中所有字母异位词
|
28天前
|
算法
两个字符串匹配出最长公共子序列算法
本文介绍了最长公共子序列(LCS)问题的算法实现,通过动态规划方法求解两个字符串的最长公共子序列,并提供了具体的编程实现细节和示例。
60 1
两个字符串匹配出最长公共子序列算法
|
12天前
|
JavaScript
力扣3333.找到初始输入字符串Ⅱ
【10月更文挑战第9天】力扣3333.找到初始输入字符串Ⅱ
28 1
|
18天前
|
算法
每日一道算法题(Leetcode 20)
每日一道算法题(Leetcode 20)
21 2
|
26天前
|
C++
Leetcode第43题(字符串相乘)
本篇介绍了一种用C++实现的字符串表示的非负整数相乘的方法,通过逆向编号字符串,将乘法运算转化为二维数组的累加过程,最后处理进位并转换为字符串结果,解决了两个大数相乘的问题。
22 9
|
26天前
|
算法 C++
Leetcode第八题(字符串转换整数(atoi))
这篇文章介绍了LeetCode上第8题“字符串转换整数(atoi)”的解题思路和C++的实现方法,包括处理前导空格、正负号、连续数字字符以及整数溢出的情况。
15 0
|
26天前
【LeetCode 22】459.重复的子字符串
【LeetCode 22】459.重复的子字符串
27 0
|
26天前
【LeetCode 20】151.反转字符串里的单词
【LeetCode 20】151.反转字符串里的单词
17 0
|
26天前
【LeetCode 19】541.反转字符串II
【LeetCode 19】541.反转字符串II
19 0