LeetCode 415 字符串相加 简单

2023-10-29 18:44

本文主要是介绍LeetCode 415 字符串相加 简单,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目 - 点击直达

  • 1. 415 字符串相加 简单
    • 1. 题目详情
      • 1. 原题链接
      • 2. 题目要求
      • 3. 基础框架
    • 2. 解题思路
      • 1. 思路分析
      • 2. 时间复杂度
      • 3. 代码实现

1. 415 字符串相加 简单

1. 题目详情

给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。
你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。

1. 原题链接

LeetCode 415 字符串相加 简单

2. 题目要求

示例 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 都不包含任何前导零

3. 基础框架

● Cpp代码框架

class Solution {
public:string addStrings(string num1, string num2) {}
};

2. 解题思路

1. 思路分析

( 1 ) (1) (1) 大整数运算时使用整型变量存储数据很容易导致溢出,一般都会存放在字符串中,在字符串中进行运算,运算方式需要我们自己进行设计,加法就是其中的一种运算;
( 2 ) (2) (2) 以符合我们正常思维的方式,两个数相加总是从低位开始相加,每次相加的结果处理成进位(除10)和本位(模10),从低位到高位都是如此;
对于长度不相等的两个数来说:长度较长的数的未参与相加的高位相当于是与长度较短的数的对应高位(其值看做0)依次按照上述规则相加作为结果;
( 3 ) (3) (3) 把得到的本位(从低位开始相加的结果位)依次尾插到空字符串中,相加结束后如果进位是1则需要再尾插一个字符1,之后字符串内的内容就是相加结果的倒序(左低位右高位),只需再次把字符串逆置一次就是所需结果(左高位右低位);
在这里插入图片描述

2. 时间复杂度

O ( ) O() O()

3. 代码实现

class Solution {
public:string addStrings(string num1, string num2) {// 1 2 3 4 5// 1 2 3// 1 2 3 4 5// 0 0 1 2 3string ret;int l1 = num1.size() - 1, l2 = num2.size() - 1;// 进位int carry = 0;while(l1 < num1.size() || l2< num2.size()){int n1 = l1 >= 0 ? num1[l1] - '0' : 0;int n2 = l2 >= 0 ? num2[l2] - '0' : 0;int add = n1 + n2 + carry;carry = add / 10;ret += add % 10 + '0';l1--;l2--;}if(carry == 1) ret += '1';reverse(ret.begin(), ret.end());return ret;}
};

T h e The The E n d End End

这篇关于LeetCode 415 字符串相加 简单的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/302625

相关文章

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

一文详解如何在Python中从字符串中提取部分内容

《一文详解如何在Python中从字符串中提取部分内容》:本文主要介绍如何在Python中从字符串中提取部分内容的相关资料,包括使用正则表达式、Pyparsing库、AST(抽象语法树)、字符串操作... 目录前言解决方案方法一:使用正则表达式方法二:使用 Pyparsing方法三:使用 AST方法四:使用字

Java字符串处理全解析(String、StringBuilder与StringBuffer)

《Java字符串处理全解析(String、StringBuilder与StringBuffer)》:本文主要介绍Java字符串处理全解析(String、StringBuilder与StringBu... 目录Java字符串处理全解析:String、StringBuilder与StringBuffer一、St

MySQL更新某个字段拼接固定字符串的实现

《MySQL更新某个字段拼接固定字符串的实现》在MySQL中,我们经常需要对数据库中的某个字段进行更新操作,本文就来介绍一下MySQL更新某个字段拼接固定字符串的实现,感兴趣的可以了解一下... 目录1. 查看字段当前值2. 更新字段拼接固定字符串3. 验证更新结果mysql更新某个字段拼接固定字符串 -

Java String字符串的常用使用方法

《JavaString字符串的常用使用方法》String是JDK提供的一个类,是引用类型,并不是基本的数据类型,String用于字符串操作,在之前学习c语言的时候,对于一些字符串,会初始化字符数组表... 目录一、什么是String二、如何定义一个String1. 用双引号定义2. 通过构造函数定义三、St

golang获取当前时间、时间戳和时间字符串及它们之间的相互转换方法

《golang获取当前时间、时间戳和时间字符串及它们之间的相互转换方法》:本文主要介绍golang获取当前时间、时间戳和时间字符串及它们之间的相互转换,本文通过实例代码给大家介绍的非常详细,感兴趣... 目录1、获取当前时间2、获取当前时间戳3、获取当前时间的字符串格式4、它们之间的相互转化上篇文章给大家介

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

C#数据结构之字符串(string)详解

《C#数据结构之字符串(string)详解》:本文主要介绍C#数据结构之字符串(string),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录转义字符序列字符串的创建字符串的声明null字符串与空字符串重复单字符字符串的构造字符串的属性和常用方法属性常用方法总结摘

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

Java实现时间与字符串互相转换详解

《Java实现时间与字符串互相转换详解》这篇文章主要为大家详细介绍了Java中实现时间与字符串互相转换的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、日期格式化为字符串(一)使用预定义格式(二)自定义格式二、字符串解析为日期(一)解析ISO格式字符串(二)解析自定义