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

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.hqwc.cn/news/116407.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[wsl2] wsl2上安装使用cmake+OpenGL教程

一、前提 系统为windows11&#xff0c;并且使用wsl2(ubuntu)&#xff1b;ubuntu中安装了基本的g, cmake编译工具&#xff1b;在windows中使用X-Server作为wsl2的显示GUI&#xff1b; 二、安装OpenGL 安装opengl的基本步骤为&#xff1a;安装glfw->安装glad->修改OpenG…

如何看待Unity新的收费模式?

文章目录 背景Unity的论点开发者的担忧如何看待Unity新的收费模式&#xff1f;1. 理解Unity的立场2. 考虑小型开发者3. 探索替代方案4. 对市场变化保持敏感5. 提高游戏质量 结论 &#x1f389; 如何看待Unity新的收费模式&#xff1f; ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1…

194、SpringBoot -- 下载和安装 Erlang 、 RabbitMQ

本节要点&#xff1a; 一些命令&#xff1a; 小黑窗输入&#xff1a; rabbitmq-plugins enable rabbitmq_management 启动控制台插件 rabbitmq-server 启动rabbitMQ服务器 管理员启动小黑窗&#xff1a; rabbitmq-service install 添加rabbitMQ为本地服务 启动浏览器访问 ht…

Android 10.0 系统开启和关闭黑白模式主题功能实现

1. 概述 在10.0的rom系统开发定制化中,在系统SystemUI的下拉状态栏中,产品开发功能需求要求添加黑白模式功能开关的功能,就是打开黑白模式,系统颜色就会变成黑白颜色, 关闭黑白模式开关系统就会变成彩色模式,所以就需要了解下系统是怎么设置黑白模式和彩色模式的,然后添…

【【萌新的FPGA学习之初识ZYNQ】】

萌新的FPGA学习之初识ZYNQ 进入 21 世纪&#xff0c;FPGA 的发展进入了累积阶段。人们发现&#xff0c;FPGA 的发展此时遭遇了瓶颈&#xff0c;因此单纯的 提升 FPGA 的容量已经不能满足各类应用的需求。由于更多客户开始追求更高的性价比&#xff0c;FPGA 不得不从 单纯的可编…

【06】FISCOBCOS中的节点前置服务

WeBASE管理平台 微众银行开源的自研区块链中间件平台——WeBASE(WeBank Blockchain Application Software Extension) 是区块链应用和FISCO BCOS节点之间搭建的中间件平台。WeBASE屏蔽了区块链底层的复杂度,降低区块链使用的门槛,大幅提高区块链应用的开发效率,包含节点前置…

10.5 串联型稳压电路(1)

稳压管稳压电路输出电流较小&#xff0c;输出电压不可调&#xff0c;不能满足很多场合下的应用。串联型稳压电路以稳压管稳压电路为基础&#xff0c;利用晶体管的电流放大作用&#xff0c;增大负载电流&#xff1b;在电路中引入深度电压负反馈使输出电压稳定&#xff1b;并且&a…

【华为云云耀云服务器L实例评测|云原生】自定制轻量化表单Docker快速部署云耀云服务器

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…

力扣刷题-链表-设计链表

题意&#xff1a; 在链表类中实现这些功能&#xff1a; get(index)&#xff1a;获取链表中第 index 个节点的值。如果索引无效&#xff0c;则返回-1。 addAtHead(val)&#xff1a;在链表的第一个元素之前添加一个值为 val 的节点。插入后&#xff0c;新节点将成为链表的第一个节…

基于MUSIC算法的二维超声波成像matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1、基本原理 4.2、数学公式 4.3、实现过程 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ..........................................…

uniapp实现表格冻结

效果图如下&#xff1a; 思路&#xff1a; 1.由于APP项目需要&#xff0c;起初想去插件市场直接找现成的&#xff0c;结果找了很久没找到合适的&#xff08;有的不支持vue2有的不能都支持APP和小程序&#xff09; 2.后来&#xff0c;就只能去改uni-table源码了&#xff0c;因…

加速乐源码(golang版本)

一、分析 分析过程网上有很多,这里只说个大概,主要是提供golang源码 请求网站,发现前两次请求都会返回521,第三次请求成功,说明前两次请求肯定是干了什么事情;使用接口请求工具模拟请求分析该过程 使用postman工具请求 a. 第一次请求会在响应头返回jsluid,返回内容中拼接…