leetcode:415. 字符串相加(模拟竖式计算)

一、题目

链接:

415. 字符串相加 - 力扣(LeetCode)

 

函数原型:char* addStrings(char* num1, char* num2)

二、思路:

本题本质是将两个字符型数字相加,字符型数字相加就一定需要进行字符与数字的相互转换

详见文章:字符与数字的相互转换-CSDN博客

模拟竖式运算即可:将字符型数字的每一位转换为整型数字相加,由于可能存在进位,所以需要将计算的结果倒置存储,这样就不必担心是否进位的问题使接收结果的字符串前多留一个位置。

三、代码

void reserve(char* str)//逆置字符串函数
{
    int len = strlen(str);
    int left = 0;
    int right = len - 1;
    while (left <= right)
    {
        char tmp = str[left];
        str[left] = str[right];
        str[right] = tmp;

        left++;
        right--;
    }
}

char* addStrings(char* num1, char* num2) {
   int len1=strlen(num1);
   int len2=strlen(num2);
   int len=len1>len2?len1+2:len2+2;
   char *ans=(char*)calloc(len,sizeof(char));//多申请两个空间,一个空间位用于进位,一个空间用于存放\0
   int add=0;//进位
   int result=0;//某一位计算结果
   int i=0,j1=len1-1,j2=len2-1;//下标
   while(j1>=0||j2>=0||add!=0)
   {
       int x=j1>=0?num1[j1--]-'0':0;//对于位数短的字符数字进行补0操作
       int y=j2>=0?num2[j2--]-'0':0;//对于位数短的字符数字进行补0操作

       result=x+y+add;
       ans[i++]=result%10+'0';
       add=result/10;//进位
   }
   reserve(ans);//由于我们是逆置存储的,需要再次逆置
   return ans;//返回结果
}

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

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

相关文章

媒体格式转换软件Permute 3 mac中文版软件特点

Permute mac是一款媒体格式转换软件&#xff0c;可以帮助用户快速地将各种音频、视频和图像文件转换成所需格式&#xff0c;并提供了一些常用工具以便于用户进行编辑和处理。 Permute mac软件特点 - 支持大量格式&#xff1a;支持几乎所有常见的音频、视频和图像格式&#xff…

Demo 题记

Demo 1 输入一个摄氏温度的值&#xff0c;将它转变为华氏温度&#xff0c;并将结果输出 #输入一个摄氏温度的值&#xff0c;将它转变为华氏温度&#xff0c;并将结果输出 c float(input("请输入摄氏温度&#xff1a;"))print("对应的华氏温度为%.2f"%(9…

redis---非关系型数据库

关系数据库与非关系型数据库 redis非关系型数据库&#xff0c;又名缓存型数据库。数据库类型&#xff1a;关系型数据库和非关系型数据库关系型数据库是一 个机构化的数据库,行和列。 列&#xff1a;声明对象。 行&#xff1a;记录对象属性。 表与表之间的的关联。 sql语句&…

俄罗斯方块摆烂

package 俄罗斯方块;import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import java.awt.event.KeyEvent; import java.awt.event.KeyListener;import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import ja…

ZYNQ_project:lcd_pic_400x400

在lcd液晶屏上显示400x400像素的图片&#xff0c; 像素信息通过电脑的串口调试助手&#xff0c;发送给fpga&#xff0c;存储在例化的双端口ram中&#xff0c; 在要显示图像区域&#xff0c;读取ram中的像素信息。 模块框图&#xff1a; 时序图&#xff1a; 代码&#xff1a;…

电脑开不了机怎么办?三招帮你成功解决!

电脑是我们日常工作和生活的重要工具&#xff0c;但有时候它们也会出现开机问题。当电脑无法启动时&#xff0c;可能会让人感到焦虑&#xff0c;电脑开不了机怎么办&#xff1f;不必担心&#xff0c;通常有多种方法可以解决这些问题。本文将介绍三种常见的方法&#xff0c;以帮…

你真的会写简历吗?软件测试简历修改包装...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、简历重要性以及…

《微信小程序开发从入门到实战》学习二十三

前言 之前是先看文章&#xff0c;再敲代码&#xff0c;出现预览效果&#xff0c;最后码字。 现在改变顺序&#xff0c;先直接照着敲代码&#xff0c;再看文章&#xff0c;最后码字。不知道能不能更加内化学习到该书作者教的内容。希望自己不是一味照抄书的代码和内容。 ​3.…

【GitHub】保姆级使用教程

一、如何流畅访问GitHub 1、网易uu加速器 输入网址&#xff0c;无脑下载网易加速器&#xff1b;https://uu.163.com/ 下载安装完毕后&#xff0c;创建账号进行登录 登录后&#xff0c;在右上角搜索框中搜索“学术资源”&#xff0c;并点击&#xff1b; 稍等一会儿就会跳…

微信小程序会议OA-登录获取手机号流程登录-小程序导入微信小程序SDK(从微信小程序和会议OA登录获取手机号到登录小程序导入微信小程序SDK)

目录 获取用户昵称头像和昵称 wx.getUserProfile bindgetuserinfo 登录过程 登录-小程序 wx.checkSession wx.login wx.request 后台 准备数据表 反向生成工具生成 准备封装前端传过来的数据 小程序服器配置 导入微信小程序SDK application.yml WxProperties …

PLC通过Modbus转profinet网关读取并控制恒压供水系统中的变频器频率

PLC通过Modbus转profinet网关读取并控制恒压供水系统中的变频器频率 PLC通过Modbus转Profinet网关(XD-MDPN100)在恒压供水系统中读取变频器的频率。该系统实时监控逆变器的频率&#xff0c;以确保水的供应能够保持恒定的压力。PLC通过Modbus与变频器通信&#xff0c;将读取的频…

配置中心

服务配置中心介绍 首先我们来看一下,微服务架构下关于配置文件的一些问题&#xff1a; 1. 配置文件相对分散。 在一个微服务架构下&#xff0c;配置文件会随着微服务的增多变的越来越多&#xff0c;而且分散 在各个微服务中&#xff0c;不好统一配置和管理。 2. 配置文件无…

【excel技巧】单元格内的公式如何隐藏?

Excel文件中最重要的除了数据还有就是一些公式了&#xff0c;但是只要点击单元格&#xff0c;公式就能显示出来&#xff0c;如果不想别人看到公式应该如何设置呢&#xff1f;今天分享隐藏excel单元格数据的方法。 选中单元格&#xff0c;点击右键打开【设置单元格格式】&#x…

深度了解LinkedBlockingQueue底层实现原理

文章目录 前言一、Queue接口的定义二、AbstractQueue实现Queue的基本操作1.AbstractQueue源码注释解析2.方法add、remove、element、clear、addAll的实现原理 三、BlockingQueue接口定义解析1.入列操作2.出列操作3.其他操作 四、LinkedBlockingQueue源码解析1.LinkedBlockingQu…

Python学习(打基础版)

以前只是大致的了解&#xff0c;现在比较完整的整理一下笔记&#xff0c;以后工作可能会用到。 学习地址如下所示&#xff1a;黑马程序员python教程&#xff0c;8天python从入门到精通&#xff0c;学python看这套就够了_哔哩哔哩_bilibili 第一章 环境配置 1 初识Python 人…

Git——感谢尚硅谷官方文档

Git——尚硅谷学习笔记 第1章 Git 概述1.1 何为版本控制1.2 为什么需要版本控制1.3 版本控制工具1.4 Git 简史1.5 Git 工作机制1.6 Git 和代码托管中心 第2章 Git 安装第 3 章 Git 常用命令3.1 设置用户签名3.2 初始化本地库3.3 查看本地库状态3.4 添加暂存区3.4.1 将工作区的文…

在vue-cli中快速使用webpack-bundle-analyzer

webpack-bundle-analyzer 是一个可视化资源分析工具&#xff0c;可以直观地分析打包出的文件有哪些&#xff0c;及它们的大小、占比情况、各文件 Gzip压缩后的大小、模块包含关系、依赖项等。 从vue-cli官方的更新记录可以看到&#xff0c;从vue-cli3开始集成report命令 当前环…

工业交换机的六种分类

工业交换机可以按照不同的标准进行分类&#xff0c;具体有六种分类方法。我们今天就来简单了解一下这六种分类方法&#xff0c;它们分别是&#xff1a;工业交换机的管理标准、工业交换机的结构标准、工业交换机的网络位置、工业交换机的传输速率、工业交换机的工作协议以及工业…

我觉得Ubuntu上的Ros2与单片机就是这么通讯的

首先Ubuntu上面建立一个功能包pkg ,包里面写一个cpp文件&#xff0c;然后在这个cpp文件里面建立一个node,然后使用这个node去获取单片机从串口传过来的数据。 平时都是使用串口调试助手来收发数据的&#xff0c;好像ros2里面有一个专门搞这个事情的东西叫做 serial库。学一下…

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《计及氢电混合动力车响应的多区域综合能源系统协调优化调度》

这个标题涉及到一个复杂的能源系统优化问题&#xff0c;其中考虑了氢电混合动力车的响应。下面是对标题中各个关键词的解读&#xff1a; 多区域综合能源系统&#xff1a; 涉及多个地理区域的综合能源系统&#xff0c;这可能包括电力网络、燃气网络、热能网络等&#xff0c;这些…