当前位置: 首页 > news >正文

【刷题训练】Leetcode415.字符串相加

字符串相加

题目要求

在这里插入图片描述
示例 1:

输入:num1 = “11”, num2 = “123”
输出:“134”
示例 2:

输入:num1 = “456”, num2 = “77”
输出:“533”
示例 3:

输入:num1 = “0”, num2 = “0”
输出:“0”

提示:

  • 1 <= num1.length, num2.length <= 104
  • num1 和num2 都只包含数字 0-9
  • num1 和num2 都不包含任何前导零

解题思路:

1.首先确保num1的长度大于或等于num2的长度。
2.倒叙遍历num1,每次把 num1[len] 和 num2[len] 的字符相加放入sum中。
3.取结果的各位放入num1中。并通过sum判断是否进位。
4.需要把字符转化为数字-'0',nums1[i]被赋值时要+'0'
5.遍历结束后,如果仍需进位,就在nums1前添加’1’即可

C++代码:

class Solution {
public:string addStrings(string num1, string num2) {//首先确保num1的长度大于或等于num2的长度if (num1.size() < num2.size())swap(num1, num2);//使用len1和len2保存num1和num2的最后一个字符的下标int len1 = num1.size() - 1;int len2 = num2.size() - 1;//flag用来记录相加时是否有进位。0/1int flag = 0;//循环遍历次数为num1的长度,从num1的后向前遍历while (len1 >= 0){//使用sum变量来存储num1和num2的最后一位相加的结果int sum = 0;if (len2 >= 0){sum += num2[len2] - '0';}//flag作用就是:如果上次计算结果有进位,那么本次就会+1sum += num1[len1] - '0' + flag;//只取相加结果的个位数字num1[len1] = sum % 10 + '0';if (sum >= 10){flag = 1;}else{flag = 0;}//控制遍历循环--len1;--len2;}//最后一步,千万不要忘记,判断最后结果是否有进位,有的话num1的长度还会增大一位。使用insert头插if (flag == 1){ num1.insert(0, "1");}return num1;}
};

运行结果

在这里插入图片描述

相关文章:

  • Ubuntu Flask 运行 gunicorn+Nginx 部署
  • 高可用系统有哪些设计原则
  • CSS Module
  • 愚人节礼物(C++)
  • 八股文三(Spring、Spring Cloud Alibaba)
  • 1.通过AD组策略如何做封禁高危端口的策略?AD域控如何给加域的电脑做指定端口号封禁呢?
  • JVM学习-类加载
  • el-table左键双击单元格编辑内容(输入框输入计算公式可直接得出结果),右键单击展示操作菜单,可编辑单元格高亮展示
  • 英伟达 V100、A100/800、H100/800 GPU 对比
  • MySQL 多表查询强化练习
  • 腾讯云GPU服务器深度计算怎么收费?1小时、一个月和一年报价
  • 命名空间——初识c++
  • 针对BSV区块链新推出的网络访问规则NAR和警报系统AS的解释与问答
  • Java基于微信小程序的校园生活互助小助手
  • 数据结构从入门到精通——直接选择排序
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • 【翻译】babel对TC39装饰器草案的实现
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • ES6--对象的扩展
  • ES6核心特性
  • export和import的用法总结
  • JavaScript实现分页效果
  • Java应用性能调优
  • js递归,无限分级树形折叠菜单
  • log4j2输出到kafka
  • PHP CLI应用的调试原理
  • quasar-framework cnodejs社区
  • XForms - 更强大的Form
  • 从零开始学习部署
  • 翻译:Hystrix - How To Use
  • 高程读书笔记 第六章 面向对象程序设计
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 力扣(LeetCode)357
  • 前端之Sass/Scss实战笔记
  • 用jQuery怎么做到前后端分离
  • 云大使推广中的常见热门问题
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • (笔试题)分解质因式
  • (编译到47%失败)to be deleted
  • (附源码)php投票系统 毕业设计 121500
  • (九十四)函数和二维数组
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (原)Matlab的svmtrain和svmclassify
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • (转载)OpenStack Hacker养成指南
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .Net程序帮助文档制作
  • .NET的数据绑定
  • .NET分布式缓存Memcached从入门到实战
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .NET实现之(自动更新)
  • /dev下添加设备节点的方法步骤(通过device_create)