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中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

Python 字符串裁切与提取全面且实用的解决方案

《Python字符串裁切与提取全面且实用的解决方案》本文梳理了Python字符串处理方法,涵盖基础切片、split/partition分割、正则匹配及结构化数据解析(如BeautifulSoup、j... 目录python 字符串裁切与提取的完整指南 基础切片方法1. 使用切片操作符[start:end]2

python连接sqlite3简单用法完整例子

《python连接sqlite3简单用法完整例子》SQLite3是一个内置的Python模块,可以通过Python的标准库轻松地使用,无需进行额外安装和配置,:本文主要介绍python连接sqli... 目录1. 连接到数据库2. 创建游标对象3. 创建表4. 插入数据5. 查询数据6. 更新数据7. 删除

Jenkins的安装与简单配置过程

《Jenkins的安装与简单配置过程》本文简述Jenkins在CentOS7.3上安装流程,包括Java环境配置、RPM包安装、修改JENKINS_HOME路径及权限、启动服务、插件安装与系统管理设置... 目录www.chinasem.cnJenkins安装访问并配置JenkinsJenkins配置邮件通知

MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)

《MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)》本文给大家介绍MyBatis的xml中字符串类型判空与非字符串类型判空处理方式,本文给大家介绍的非常详细,对大家的学习或... 目录完整 Hutool 写法版本对比优化为什么status变成Long?为什么 price 没事?怎

Python yield与yield from的简单使用方式

《Pythonyield与yieldfrom的简单使用方式》生成器通过yield定义,可在处理I/O时暂停执行并返回部分结果,待其他任务完成后继续,yieldfrom用于将一个生成器的值传递给另一... 目录python yield与yield from的使用代码结构总结Python yield与yield

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

C# $字符串插值的使用

《C#$字符串插值的使用》本文介绍了C#中的字符串插值功能,详细介绍了使用$符号的实现方式,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录$ 字符使用方式创建内插字符串包含不同的数据类型控制内插表达式的格式控制内插表达式的对齐方式内插表达式中使用转义序列内插表达式中使用

详解MySQL中JSON数据类型用法及与传统JSON字符串对比

《详解MySQL中JSON数据类型用法及与传统JSON字符串对比》MySQL从5.7版本开始引入了JSON数据类型,专门用于存储JSON格式的数据,本文将为大家简单介绍一下MySQL中JSON数据类型... 目录前言基本用法jsON数据类型 vs 传统JSON字符串1. 存储方式2. 查询方式对比3. 索引

Java中使用 @Builder 注解的简单示例

《Java中使用@Builder注解的简单示例》@Builder简化构建但存在复杂性,需配合其他注解,导致可变性、抽象类型处理难题,链式编程非最佳实践,适合长期对象,避免与@Data混用,改用@G... 目录一、案例二、不足之处大多数同学使用 @Builder 无非就是为了链式编程,然而 @Builder