经典题记录 字符串相加/相乘

news/2025/4/2 5:29:56/

1. LeetCode 415 字符串相加

在这里插入图片描述

代码一:代码简短,但需要借助额外的一个string来保存结果,更占用内存。

class Solution {
public:string addStrings(string num1, string num2) {string ans="";int size1=num1.size();int size2=num2.size();int size=max(size1,size2);int flag=0;  //表示进位for(int i=size1-1,j=size2-1;i>=0||j>=0||flag>0;i--,j--){int x=i<0?0:num1[i]-'0';int y=j<0?0:num2[j]-'0';flag=flag+x+y;char ch=(flag%10)+'0';ans=ch+ans;flag=flag/10;}return ans;}
};

在这里插入图片描述

代码二:相比代码一行数多点,但是运行时间短一点,内存占用更少。

string add(string str1,string str2){ //字符串相加int size1 = str1.size();int size2 = str2.size();if(size1>size2){for (int i = 0; i < size1 - size2;i++)str2 = "0" + str2;}if(size2>size1){for (int i = 0; i < size2 - size1;i++)str1 = "0" + str1;}int flag = 0;int size = max(size1, size2);for (int i = size - 1; i >= 0;i--){flag = flag + (str1[i] - '0') + (str2[i] - '0');str1[i] = (flag % 10)+'0';flag /= 10;}if(flag){char x = flag + '0';str1 = x + str1;}return str1;
}

在这里插入图片描述

LeetCode 43 字符串相乘

在这里插入图片描述

代码:在这里插入图片描述

class Solution {
public:string add(string str1,string str2){ //数字字符串相加string str="";int flag=0;for(int i=str1.size()-1,j=str2.size()-1;i>=0||j>=0;i--,j--){int x =i<0?0:str1[i]-'0'; //i等于0表示最高位了,i<0时前面没有数字了int y =j<0?0:str2[j]-'0'; //j等于0表示最高位了,j<0时前面没有数字了flag+=x+y; //当前位的和char ch=flag%10+'0';flag/=10;str=ch+str;}if(flag){char x = flag + '0';str = x + str;}return str;}string multiply(string num1, string num2) { //数字字符串相乘if(num1=="0"||num2=="0")return "0";string ans=""; for(int i=num2.size()-1;i>=0;i--){char ch=num2[i];string tmp="";int flag=0;for(int j=num1.size()-1;j>=0;j--){int x=num1[j]-'0';int y=ch-'0';int n=x*y+flag;flag=n/10;//进位char a=n%10+'0';tmp=a+tmp;}if(flag){char x=flag+'0';tmp=x+tmp;}for(int k=0;k<num2.size()-1-i;k++) //后面补零tmp+="0";ans=add(ans,tmp);}return ans;}
};

http://www.ppmy.cn/news/1122341.html

相关文章

【TCP】确认应答 与 超时重传

确认应答 与 超时重传 一. 确认应答机制二. 超时重传机制 一. 确认应答机制 确认应答: 保障可靠传输的核心机制。 可靠传输: 不是指传输过去的数据不出错, 也不是指数据一定能传输过去&#xff0c;而是指发送方能够知道接收方是否接收到了数据。确认应答的关键就是接收方收到数…

HTTP 协商缓存 ETag、If-None-Match

&#xff08;1&#xff09;浏览器第一次跟服务器请求一个资源&#xff0c;服务器在返回这个资源的同时&#xff0c;在respone header加上ETag。 ETag是服务器根据当前请求的资源生成的一个唯一标识。 这个唯一标识是一个字符串&#xff0c;只要资源有变化这个串就不同&#xff…

李航老师《统计学习方法》第四章阅读笔记

朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。 朴素贝叶斯法是一种用来进行分类的方法&#xff0c;它基于两个重要的假设&#xff1a;贝叶斯定理和特征条件独立假设。 贝叶斯定理&#xff1a; 贝叶斯定理是一种用来估计事件发生概率的数学原理。它告诉我们如何根…

基于pyqt5的Qlabel字幕滚动的简单实现方式

一、概要 实现字幕滚动的好处有以下几点&#xff1a;   1. 提高观看体验&#xff1a;滚动字幕的字体通常较大&#xff0c;且会滚动&#xff0c;使得用户更轻松地阅读字幕内容&#xff0c;减少了眼睛的疲劳感。   2. 增强理解&#xff1a;对于一些国外电影或电视剧&#xff…

Linux-VI和VIM

目录 VI的使用 VI的三种模式 进入VI 切换至插入模式&#xff08;Insert mode&#xff09;编辑文件 Insert 的切换 退出VI及保存文件 搜索 快捷删除 光标定位到最后一行 VIM查找字符串 全匹配 模糊匹配&#xff08;正则表达式&#xff09; 快速查找​​​​​​…

postman-pre-request-scripts使用

一、场景 二、定义模拟接口 using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using SaaS.Framework.DataTransfer; using System.Threading.Tasks;namespace SaaS.KDemo.Api.Controllers {[Route("api/[co…

Docker部署Nginx+FastDFS插件

文章目录 一、部署FastDFS二、部署Nginx(带FastDFS插件)三、FastDFS上传文件Nginx访问验证 一、部署FastDFS 1、准备工作 docker pull qinziteng/fastdfs:5.05 Pwd"/data/software/fastdfs" mkdir ${Pwd}/{storage,tracker} -p2、创建TEST容器&#xff0c;将fastdf…

第三十六章 Objects - 有用的 ObjectScript 函数

文章目录 第三十六章 Objects - 有用的 ObjectScript 函数有用的 ObjectScript 函数 第三十六章 Objects - 有用的 ObjectScript 函数 有用的 ObjectScript 函数 ObjectScript 提供以下与对象类一起使用的函数&#xff1a; $CLASSMETHOD 使能够运行类方法&#xff0c;以类名…