字符串相加(力扣)

这篇具有很好参考价值的文章主要介绍了字符串相加(力扣)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Problem: 415. 字符串相加

思路

创建一个StringBuilder对象使用append方法追加每位数字相加,使用双指针的方式,指针i,j分别指向num1和num2的每位数字,从后往前,进位用carry存储着。
得到答案后,然后反转StringBUilder再转化为String即可。

Code


class Solution {
    public String addStrings(String num1, String num2) {
        StringBuilder ans=new StringBuilder();
        //i指向num1的每位数字,从后向前
        int i=num1.length()-1;
        //j指向num2的每位数字,从后向前
        int j=num2.length()-1;
        int carry=0 ;
        while (i>=0||j>=0){
            //取出i,j所表示的数字,若没有则返回0
         int n1=i>=0?num1.charAt(i)-'0':0;
         int n2=j>=0?num2.charAt(j)-'0':0;
         //求和
         int count=n1+n2+carry;
         carry=count/10;
         //给答案追加数字
         ans.append(count%10);
         i--;j--;
        }
        //结束后,carry如果还有值,则追加
        if (carry==1)ans.append(1);
        //取反
        return ans.reverse().toString();
    }
}

复杂度

  • 时间复杂度: O(max) max表示两个字符串中最长的一个长度

  • 空间复杂度: O(1)

运行结果

字符串相加(力扣),leetcode题目,leetcode,算法,职场和发展文章来源地址https://www.toymoban.com/news/detail-598121.html

到了这里,关于字符串相加(力扣)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • LeetCode·每日一题·415. 字符串相加·模拟

    作者:小迅 链接:https://leetcode.cn/problems/add-strings/solutions/2347085/mo-ni-zhu-shi-chao-ji-xiang-xi-by-xun-ge-fges/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。   题意 - 给定二个字符串,计算它们的和并同样以字符串形式返回。 直接从

    2024年02月16日
    浏览(31)
  • 【每日挠头算法(4)】字符串相加|字符串相乘

    点我直达~ 1.将两个字符串从右往左开始进行相加,使用一个变量 ans 表示进位,如果两个字符串的个位加法和大于10,那么让进位+1,个位和再%10,然后将结果存入到新的字符串 strRet 中 2.两个字符串的十位和十位继续相加,并且需要加上个位的进位 ans ,步骤同1 3.这样不断相

    2024年02月09日
    浏览(42)
  • 算法学习——LeetCode力扣补充篇11(64. 最小路径和、48. 旋转图像 、169. 多数元素、394. 字符串解码、240. 搜索二维矩阵 II )

    64. 最小路径和 - 力扣(LeetCode) 描述 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例 示例 1: 输入:grid = [[1,3,1],[1,5,1],[4,2,1]] 输出:7 解释:因为路径 1→3→1→

    2024年04月23日
    浏览(32)
  • LeetCode竞赛题目—在LR字符串中交换相邻字符

    作者: 渴望力量的土狗 博客主页:渴望力量的土狗的博客主页 专栏:每日一道LeetCode 工欲善其事必先利其器,给大家介绍一款超牛的斩获大厂offer利器——牛客网 点击免费注册和我一起刷题吧 目录 题目描述:在LR字符串中交换相邻字符 解答思路:双指针法 分析: Java解题

    2024年01月21日
    浏览(44)
  • 小白水平理解面试经典题目LeetCode 594 最大和谐字符串

    这道题属于字符串类型题目,解决的办法还是有很多的,暴力算法,二分法,双指针等等。 和谐数组是指一个数组里元素的最大值和最小值之间的差别 正好是 1 。 现在,给你一个整数数组 nums ,请你在所有可能的子序列中找到最长的和谐子序列的长度。 数组的子序列是一个

    2024年01月23日
    浏览(35)
  • 【leetcode 力扣刷题】字符串匹配之经典的KMP!!!

    以下是能用KMP求解的算法题,KMP是用于字符串匹配的经典算法【至今没学懂………啊啊啊】 题目链接:28. 找出字符串中第一个匹配项的下标 题目内容: 题意还是很好理解的,要在字符串haystack中查找一个完整的needle,即字符串匹配。 暴力求解就是用 两层循环 :haystack从第

    2024年02月09日
    浏览(32)
  • 【leetcode 力扣刷题】字符串翻转合集(全部反转///部分反转)

    题目链接:344. 反转字符串 题目内容: 题目中重点强调了必须 原地修改 输入数组,即不能新建一个数组来完成字符串的反转。我们注意到: 原来下标为0的,反转后是size - 1【原来下标是size - 1的,反转后是0】; 原来下标是1的,反转后是size - 2【原来下标是size -2的,反转后

    2024年02月11日
    浏览(35)
  • 【算法】算法(模拟、指针等)解决字符串类题目(C++)

    字符串题目有很多种,这里筛选几个考察模拟、双指针等的题目,并用相关算法解决。 思路 题意分析 :题目要求找到字符串数组中的最长公共前缀。 解法一 : 两两比较 遍历数组,每次比较后更新最长公共前缀,并循环比较找最长公共前缀 解法二 : 统一比较 遍历第一个

    2024年01月16日
    浏览(38)
  • 算法通关村第十二关-字符串基础题目

    思路:遍历字符串,将第i个字符和第N-i-1个字符串交换即可; 代码实现: 题目:反转字符串2 思路:每2k个一组,将其前k个字符反转,使用i+k与字符串长度n判断剩余字符串长度属于(0,k)还是 [k,2k)之间;然后按照要求剩余字符串即可; 代码实现: 题目:仅仅反转字母 思

    2024年01月22日
    浏览(38)
  • 力扣热门算法题 349. 两个数组的交集,387. 字符串中的第一个唯一字符,394. 字符串解码

    349. 两个数组的交集,387. 字符串中的第一个唯一字符,394. 字符串解码,每题做详细思路梳理,配套PythonJava双语代码, 2024.04.02 可通过leetcode所有测试用例。 目录 349. 两个数组的交集 解题思路 完整代码 Python Java 387. 字符串中的第一个唯一字符 解题思路 完整代码 Python Java

    2024年04月08日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包