[LeetCode] 415.字符串相加

给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。

你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。

示例 1:

输入:num1 = "11", num2 = "123" 输出:"134"

示例 2:

输入:num1 = "456", num2 = "77" 输出:"533"

解题思路与算法:

方法1:模拟

这题需要我们输出两个数相加以后的结果,我们可以通过模拟 “竖式加法” 对该题求解,“竖式加法”是我们小时候经常对两个数进行计算的方式,两个数的每位数从右到左依次相加,两数之和大于10就进位到上一个数,反复操作,最后得出结果

实现很简单,我们创建两个指针end1和end2分别指向num1和num2的最后一个元素,然后创建一个变量carry,查看当前是否进位,若有两个不数位不同的两数相加,end1或end2位负数时就往数位低的那个数高位补0,这样做就可以处理当两个数数位不同的情况

代码演示:

class Solution 
{
public:
    string addStrings(string num1, string num2) 
    {
        int end1, end2, carry;
        end1 = num1.size() - 1, end2 = num2.size() - 1;
        carry = 0;
        string s1;

        while(end1 <= 0 || end2 <= 0)
        {
            int sum = 0;
            int i = end1 <= 0 ? num1[end1] - '0' : 0;
            int j = end2 <= 0 ? num2[end2] - '0' : 0;
            
            sum = end1 + end2 + carry;
            carry = sum / 10;
            s1 += sum % 10 + '0';
                
            --end1;
            --end2;            
        }
        if(carry != 0)
        {
            S1 += carry;
        }

        return s1;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/894549.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python编程探索:从基础语法到循环结构实践(下)

文章目录 前言&#x1f377;四、 字符串拼接&#xff1a;连接多个字符串&#x1f378;4.1 使用 操作符进行字符串拼接&#x1f378;4.2 使用 join() 方法进行字符串拼接&#x1f378;4.3 使用 format() 方法进行格式化拼接&#x1f378;4.4 使用 f-string&#xff08;格式化字…

DS几大常见排序讲解和实现(中)(14)

文章目录 前言一、希尔排序( 缩小增量排序 )基本思想实现思路时间空间复杂度分析总结 二、选择排序基本思想实现思路时间空间复杂度分析总结 三、堆排序四、冒泡排序基本思想实现思路总结 五、归并排序基本思想实现思路总结 六、计数排序基本思想总结 总结 前言 承上启下&#…

CPP-TCP80优化

CPP-TCP80优化 调整场景&#xff1a;(无法弹出认证界面或弹出慢&#xff09; 其中判断是否需要调整的方法如下&#xff1a;高峰期每隔20s show一次如下命令&#xff0c;查看Drop列数值是否有增加。 说明&#xff1a; web认证情况下&#xff0c;如果同时进行web重定向用户较多&…

【服务器部署】Docker部署小程序

一、下载Docker 安装之前&#xff0c;一定查看是否安装docker&#xff0c;如果有&#xff0c;卸载老版本 我是虚拟机装的Centos7&#xff0c;linux 3.10 内核&#xff0c;docker官方说至少3.8以上&#xff0c;建议3.10以上&#xff08;ubuntu下要linux内核3.8以上&#xff0c…

TPAMI 2024 | TokenCut:使用自监督 Transformer 和正则化剪切对图像和视频中的对象进行分割

TokenCut&#xff1a;使用自监督 Transformer 和正则化剪切对图像和视频中的目标进行分割 作者&#xff1a;Yangtao Wang, Xi Shen, Yuan Yuan, Yuming Du, Maomao Li, Shell Xu Hu, James L. Crowley, Dominique Vaufreydaz 摘要 在本文中&#xff0c;我们描述了一种基于图…

使用Windbg分析dump文件排查C++软件异常的一般步骤与要点分享

目录 1、概述 2、打开dump文件,查看发生异常的异常类型码 3、查看发生异常的那条汇编指令 3.1、汇编代码能最直接、最本真的反映出崩溃的原因 3.2、汇编指令中访问64KB小地址内存区,可能是访问了空指针 3.3、汇编指令中访问了很大的内核态的内存地址 3.4、汇编指令中访…

无人机之融合集群技术篇

无人机的融合集群技术是一个涉及多个领域的复杂技术体系&#xff0c;它结合了无人机技术、自组网技术、集群控制技术以及反制设备等多个方面&#xff0c;旨在实现多架无人机之间的协同、编队、信息共享、任务分配和高效作业。 一、无人机自组网技术 无人机自组网技术是一种利用…

嵌入式STM32学习——按键的基础知识

3.5 按键基础知识 1.深入理解GPIO输入 GPIO的特点&#xff1a; 具有内部上拉或下拉的功能可以使用外部下拉或上拉 按键连接示意图: 按键控制LED灯 灯的电路图&#xff1a; 软件设计流程&#xff1a; 初始化系统 初始化GPIO外设时钟 初始化按键和LED的引脚 检测按键输入电…

基于SSM高校普法系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;学生管理&#xff0c;律师管理&#xff0c;法律知识管理&#xff0c;新闻类型管理&#xff0c;法律新闻&#xff0c;律师推荐管理 律师账号功能包括&#xff1a;系统首页&#xff0c;个人中心&#xf…

LibreOffice SDK是LibreOffice软件的开发工具包

LibreOffice SDK是LibreOffice软件的开发工具包&#xff0c;它提供了一系列工具和库&#xff0c;使得开发者可以基于LibreOffice进行扩展或开发新的应用程序。以下是对LibreOffice SDK的详细介绍&#xff1a; 一、下载与安装 下载地址&#xff1a; 可以在LibreOffice的官方网站…

如何在没有密码的情况下将 iPhone 13/14/15/16 恢复出厂设置

本文详细介绍了在忘记密码的情况下&#xff0c;如何通过多种方法在iPhone13/14/15/16上进行无需密码的出厂重置&#xff0c;包括设备上操作、第三方工具、Finder/iTunes以及使用iCloud。还提供了防止忘记密码的建议。 摘要由CSDN通过智能技术生成 您想知道如何在没有密码的情…

Unity Apple Vision Pro 保姆级开发教程-准备阶段

视频教程&#xff1a; Unity PolySpatial 开发Apple Vision Pro教程, 三十分钟快速了解 Unity Vision Pro 中文课堂教程地址&#xff1a; Unity3D Vision Pro 开发教程【保姆级】 | Unity 中文课堂 开发Apple Vision Pro 使用原生开发和unity 开发有什么区别 如果你的项目需要…

Redis 高可用:从主从到集群的全面解析

目录 一、主从复制 (基础)1. 同步复制a. 全量数据同步b. 增量数据同步c. 可能带来的数据不一致 2. 环形缓冲区a. 动态调整槽位 3. runid4. 主从复制解决单点故障a. 单点故障b. 可用性问题 5. 注意事项a. Replica 主动向 Master 建立连接b. Replica 主动向 Master 拉取数据 二、…

智能家居的“眼睛”:计算机视觉如何让家更智能

引言 在不远的未来&#xff0c;当我们走进家门&#xff0c;灯光自动亮起&#xff0c;空调已经调至最舒适的温度&#xff0c;甚至音乐也播放着我们最喜欢的歌曲。 这一切&#xff0c;都得益于智能家居系统的发展。而在这个系统中&#xff0c;计算机视觉技术扮演着至关重要的角色…

初识MySQL · 数据库

目录 前言&#xff1a; 数据库 简单使用 存储引擎 前言&#xff1a; 本文也是MySQL的第一篇文章了&#xff0c;新的知识点已经出现&#xff0c;怎么能够停止不前&#xff0c;穿越时空……(迪迦奥特曼乱入哈哈哈)。 言归正传&#xff0c;我们在本文的目标有&#xff1a; …

基于SpringBoot+Vue+uniapp的涪陵区特色农产品交易系统的详细设计和实现(源码+lw+部署文档+讲解等)

详细视频演示 请联系我获取更详细的视频演示 项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念&#xff0c;提供了一套默认的配置&#xff0c;让开发者可以更专注于业务逻辑而不…

MATLAB(Octave)混电动力能耗评估

&#x1f3af;要点 处理电动和混动汽车能耗的后向和前向算法模型(simulink)&#xff0c;以及图形函数、后处理函数等实现。构建储能元数据信息&#xff1a;电池标称特性、电池标识符等以及静止、恒定电流和恒定电压等特征阶段。使用电流脉冲或要识别的等效电路模型类型配置阻抗…

day-13面向对象进阶

面向对象进阶部分学习方法&#xff1a; 特点&#xff1a; ​ 逻辑性没有那么强&#xff0c;但是概念会比较多。 ​ 记忆部分重要的概念&#xff0c;理解课堂上讲解的需要大家掌握的概念&#xff0c;多多练习代码。 day13 第一章 复习回顾 1.1 如何定义类 类的定义格式如…

Linux_进程控制

一&#xff1a;进程创建 fork()函数创建新进程 #include <unistd.h> pid_t fork(void); 返回值&#xff1a;自进程中返回0&#xff0c;父进程返回子进程id&#xff0c;出错返回-1 进程调用fork&#xff0c;当控制转移到内核中的fork代码后&#xff0c;内核做&#xff1a;…

KubeSphere部署Elasticsearch+Kibana

演示示例使用的是3.4.1&#xff0c;各版本有名字差异 功能是一样的 1.配置字典 名称&#xff1a;elasticsearch 键名&#xff1a;elasticsearch-conf 值&#xff1a; network.host: 0.0.0.0 http.port: 9200 transport.port: 9300 # head 插件需要这打开这两个配置,解决跨域…