【力扣每日一题】2023.7.17 字符串相加

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

题目:

【力扣每日一题】2023.7.17 字符串相加,力扣每日一题,leetcode,算法,数据结构

示例:

【力扣每日一题】2023.7.17 字符串相加,力扣每日一题,leetcode,算法,数据结构

分析:

题面很简单,就是要将两个字符串看作是数字然后相加,将最后结果转为字符串返回即可.

看到这题我的第一反应是直接转成数字再相加再转成字符串,像是这样:

class Solution {
public:
    string addStrings(string num1, string num2) {
        return to_string(stoi(num1)+stoi(num2));
    }
};

但这样就不符合题目要求了(这不是主要原因) ,并且遇到大数就无法转成整型也无法计算了.

所以需要像是我们列竖式计算这样来算出结果.

首先将两个字符串翻转过来,这样就尾部对齐了(个位对个位,十位对十位).

然后再单独把每位的字符转成数字再相加,然后转成新的字符串即可.需要注意的是进位,进位要单独取一个变量来存着.

相加完毕后还需要再翻转回来.

【力扣每日一题】2023.7.17 字符串相加,力扣每日一题,leetcode,算法,数据结构

代码+运行结果:

class Solution {
public:
    string addStrings(string num1, string num2) {
        reverse(num1.begin(),num1.end());
        reverse(num2.begin(),num2.end());
        string res="";
        int jinwei=0;
        int index=0;
        while(index<num1.size() || index<num2.size() || jinwei!=0){
            int cur=0;
            cur+=((index<num1.size()?int(num1[index]-'0'):0))+((index<num2.size()?int(num2[index]-'0'):0))+jinwei;
            res+=to_string(cur%10);
            jinwei=cur/10;
            index++;
        }
        reverse(res.begin(),res.end());
        return res;
    }
};

【力扣每日一题】2023.7.17 字符串相加,力扣每日一题,leetcode,算法,数据结构

 文章来源地址https://www.toymoban.com/news/detail-586703.html

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

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

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

相关文章

  • 【力扣·每日一题】2645. 构造有效字符串的最小插入数(动态规划 贪心 滚动数组优化 C++ Go)

    题目链接 给你一个字符串 word ,你可以向其中任何位置插入 “a”、“b” 或 “c” 任意次,返回使 word 有效 需要插入的最少字母数。 如果字符串可以由 “abc” 串联多次得到,则认为该字符串 有效 。 提示: 1 = w o r d . l e n g t h = 50 1 = word.length = 50 1 = w or d . l e n g t h = 50 w

    2024年01月16日
    浏览(51)
  • 2023-08-15 LeetCode每日一题(字符串中的查找与替换)

    点击跳转到题目位置 你会得到一个字符串 s (索引从 0 开始),你必须对它执行 k 个替换操作。替换操作以三个长度均为 k 的并行数组给出:indices, sources, targets。 要完成第 i 个替换操作: 检查 子字符串 sources[i] 是否出现在 原字符串 s 的索引 indices[i] 处。 如果没有出现, 什么

    2024年02月12日
    浏览(43)
  • Leetcode每日一题:2337. 移动片段得到字符串(2023.8.21 C++)

    目录 2337. 移动片段得到字符串 题目描述: 实现代码与解析: 双指针 原理思路:         给你两个字符串  start  和  target  ,长度均为  n  。每个字符串  仅  由字符  \\\'L\\\' 、 \\\'R\\\'  和  \\\'_\\\'  组成,其中: 字符  \\\'L\\\'  和  \\\'R\\\'  表示片段,其中片段  \\\'L\\\'  只有在其左侧直接

    2024年02月11日
    浏览(38)
  • 2023-06-14 LeetCode每日一题(二进制字符串前缀一致的次数)

    点击跳转到题目位置 给你一个长度为 n 、下标从 1 开始的二进制字符串,所有位最开始都是 0 。我们会按步翻转该二进制字符串的所有位(即,将 0 变为 1)。 给你一个下标从 1 开始的整数数组 flips ,其中 flips[i] 表示对应下标 i 的位将会在第 i 步翻转。 二进制字符串 前缀

    2024年02月08日
    浏览(54)
  • 2023-06-02 LeetCode每日一题(统计范围内的元音字符串数)

    点击跳转到题目位置 给你一个下标从 0 开始的字符串数组 words 以及一个二维整数数组 queries 。 每个查询 queries[i] = [li, ri] 会要求我们统计在 words 中下标在 li 到 ri 范围内( 包含 这两个值)并且以元音开头和结尾的字符串的数目。 返回一个整数数组,其中数组的第 i 个元素

    2024年02月07日
    浏览(53)
  • 字符串相加(力扣)

    Problem: 415. 字符串相加 创建一个StringBuilder对象使用append方法追加每位数字相加,使用双指针的方式,指针i,j分别指向num1和num2的每位数字,从后往前,进位用carry存储着。 得到答案后,然后反转StringBUilder再转化为String即可。 时间复杂度: O(max) max表示两个字符串中最长的一个

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

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

    2024年02月09日
    浏览(57)
  • 【算法详解】力扣415.字符串相加

    力扣链接:力扣415.字符串相加 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。 你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。 示例 1: 输入:num1 = “11”, num2 = “123” 输出:

    2024年01月22日
    浏览(44)
  • ( 字符串) 205. 同构字符串 ——【Leetcode每日一题】

    难度:简单 给定两个字符串 s 和 t ,判断它们是否是同构的。 如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。 每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个

    2024年02月02日
    浏览(55)
  • 每日一题——字符串变形

    题目 对于一个长度为 n 字符串,我们需要对它做一些变形。 首先这个字符串中包含着一些空格,就像\\\"Hello World\\\"一样,然后我们要做的是把这个字符串中由空格隔开的单词反序,同时反转每个字符的大小写。 比如\\\"Hello World\\\"变形后就变成了\\\"wORLD hELLO\\\"。 需要考虑字符串结尾是空

    2024年02月13日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包