两个字符串形式的非负整数的和,积
1.给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
注:
- num1 和num2 的长度都小于 5100
- num1 和num2 都只包含数字 0-9
- num1 和num2 都不包含任何前导零
- 你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式
题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/add-strings
各从最高位(理解为个位)开始相加,当不发生进位时,直接将加入的结果直接转换为字符存入str中,若发生进位,则将flag置1,并且当前位相加的结果要进行-10操作,并且向前一位先加一个进位的字符1
class Solution {public:string addStrings(string num1, string num2) {int len1 = num1.size() - 1;int len2 = num2.size() - 1;int flag = 0;//标志是否进位string str;while(len1>=0 || len2>=0 ){int cursum=flag;if(len1>=0)cursum += num1[len1--]-'0';if(len2>=0)cursum += num2[len2--]-'0';if(cursum>9){flag=1;cursum=cursum-10;}elseflag=0;str += cursum+'0';}if(flag==1)str+='1';reverse(str.begin(),str.end());return str;}
};
//时间复杂度o(max(len1,len2))
//空间复杂度o(1)
2.给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。
示例 1:
输入: num1 = “2”, num2 = “3”
输出: “6”
示例 2:
输入: num1 = “123”, num2 = “456”
输出: “56088”
题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/multiply-strings
从最右边开始,将对应结果存入对应位置。两个数字相乘,所得乘积的位数小于等于两个数的位数之和。则预留与两数位数之和相等的空间则足够使用。
class Solution {public:string multiply(string num1, string num2) {int len1=num1.size();int len2=num2.size();string str(len1+len2,'0');for(int i=len1-1;i>=0;--i){for(int j=len2-1;j>=0;--j){str[i+j+1]=(str[i+j+1]-'0')+((num1[i]-'0')*(num2[j]-'0'));//注意这里要使用数字运算str[i+j]+=(str[i+j+1]/10);str[i+j+1]=(str[i+j+1]%10)+'0';//这里载入的是字符}}for(int i=0;i<len1+len2;++i){if(str[i]!='0')return str.substr(i);//从第一个非字符0的位置截取字符,然后返回}return "0"; }
};
两个字符串形式的非负整数的和,积相关推荐
- 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 不能直接将输入的字符串转换为整数形式. 思路:将字符串从最小位进行相加,最后形成的字符串倒置 class Solution {pu ...
- 随笔-给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和
题目:给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 注意: num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0-9. num1 和num2 ...
- js 比较两个字符串形式的时间的大小
在日常中,时常会遇到需要判断两个字符串形式的时间的大小,如:'2019-11-01','2019-11-10'这两个时间的大小进行判断,以下就是解决方案: 1. 将字符串转化为Date对象 可以使用n ...
- 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。
1.题目 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 示例 1: 输入: num1 = "2" ...
- 字符串相乘(给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。)
43. 字符串相乘 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 示例 1: 输入: num1 = "2& ...
- Java给定字符串形式的非负数,返回两个非负数的乘积
/* 给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也表示为字符串形式.*/ 方法一: public class Test5Case2 {public ...
- 2021-10-20:分数到小数。给定两个整数,分别表示分数的分子numerator和分母denominator,以字符串形式返回小数。如果小数部分为循环小数,则将循环的部分括在括号内。输入: num
2021-10-20:分数到小数.给定两个整数,分别表示分数的分子numerator和分母denominator,以字符串形式返回小数.如果小数部分为循环小数,则将循环的部分括在括号内.输入: num ...
- 猜字谜 外国友人仿照中国字谜设计了一个英文版猜字谜小游戏,请你来猜猜看吧。 字谜的迷面 puzzle 按字符串形式给出,如果一个单词 word 符合下面两个条件,那么它就可以算作谜底:
今天是元宵节,力扣也细心地为我们准备了一道有关节日的题,一起看看吧: 1178. 猜字谜 外国友人仿照中国字谜设计了一个英文版猜字谜小游戏,请你来猜猜看吧. 字谜的迷面 puzzle 按字符串形式给出 ...
- C语言函数strcmp()(比较两个字符串)
C 库函数 - strcmp() 文章目录 描述 声明 参数 返回值 实例 注意 描述 C 库函数 int strcmp(const char *str1, const char *str2) 把 s ...
最新文章
- 解决计算机改名无法连接TFS的问题
- 新手该怎样学习网站分析?
- 0040 Java学习笔记-多线程-线程run()方法中的异常
- phpstrom正则替换
- android获取工程中所有类名,android 获取手机的所有程序和widget的包名和启动类名...
- bzoj1189 [HNOI2007]紧急疏散EVACUATE spfa+网络流+二分
- hdu1005 Number Sequence(寻找循环节)
- 很多人想不通为什么创业失败者众成功者少
- html轮播图向左改为向下,jQuery之轮播图向左滚动动画【原创】
- 网络爬虫、spider程序、网络蜘蛛
- listView的最简单的使用方法
- 设计模式 单例模式解决线程安全问题
- 恒生UFX 统一接入介绍
- 如何舒服地在图书馆用ipad入门深度学习【windows jupyter远程】
- Android Studio Menu item 的简单使用
- Todo Tree插件配置
- 2022-2028全球与中国期权及期货交易平台市场现状及未来发展趋势
- [TI TDA4 J721E] Sensor 鱼眼摄像头 LDC畸变校正模块LUT的创建和生成——详解
- bootloader学习笔记---第二篇
- 遇见物联,西电开启智慧校园新大门
热门文章
- 1. linux下gradle环境安装
- 手把手写C++服务器(31):服务器性能提升关键——IO复用技术【两万字长文】
- 实验3_B_小学奥数题
- mysql max_prepared_stmt_count_max_prepared_stmt_count 问题与Sysbench 工具简介
- forEach、map、for..of、for..in、for循环实现异步变同步的问题
- ISE 撰写Verilog问题记录(一)
- 类似美图秀秀 拼图 大致原理
- 求百分比时,为什么不能用二个long类型的数相除求百分比?
- 基于支持向量机 (SVM) 和稀疏表示理论 (SRC) 的人脸识别比较
- c语言正则表达式 windows,在C语言中使用正则表达式.doc