1.给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
注:

  1. num1 和num2 的长度都小于 5100
  2. num1 和num2 都只包含数字 0-9
  3. num1 和num2 都不包含任何前导零
  4. 你不能使用任何內建 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"; }
};

两个字符串形式的非负整数的和,积相关推荐

  1. 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。

    给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 不能直接将输入的字符串转换为整数形式. 思路:将字符串从最小位进行相加,最后形成的字符串倒置 class Solution {pu ...

  2. 随笔-给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和

    题目:给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 注意: num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0-9. num1 和num2 ...

  3. js 比较两个字符串形式的时间的大小

    在日常中,时常会遇到需要判断两个字符串形式的时间的大小,如:'2019-11-01','2019-11-10'这两个时间的大小进行判断,以下就是解决方案: 1. 将字符串转化为Date对象 可以使用n ...

  4. 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。

    1.题目 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 示例 1: 输入: num1 = "2" ...

  5. 字符串相乘(给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。)

    43. 字符串相乘 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 示例 1: 输入: num1 = "2& ...

  6. Java给定字符串形式的非负数,返回两个非负数的乘积

    /* 给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也表示为字符串形式.*/ 方法一: public class Test5Case2 {public ...

  7. 2021-10-20:分数到小数。给定两个整数,分别表示分数的分子numerator和分母denominator,以字符串形式返回小数。如果小数部分为循环小数,则将循环的部分括在括号内。输入: num

    2021-10-20:分数到小数.给定两个整数,分别表示分数的分子numerator和分母denominator,以字符串形式返回小数.如果小数部分为循环小数,则将循环的部分括在括号内.输入: num ...

  8. 猜字谜 外国友人仿照中国字谜设计了一个英文版猜字谜小游戏,请你来猜猜看吧。 字谜的迷面 puzzle 按字符串形式给出,如果一个单词 word 符合下面两个条件,那么它就可以算作谜底:

    今天是元宵节,力扣也细心地为我们准备了一道有关节日的题,一起看看吧: 1178. 猜字谜 外国友人仿照中国字谜设计了一个英文版猜字谜小游戏,请你来猜猜看吧. 字谜的迷面 puzzle 按字符串形式给出 ...

  9. C语言函数strcmp()(比较两个字符串)

    C 库函数 - strcmp() 文章目录 描述 声明 参数 返回值 实例 注意 描述 C 库函数 int strcmp(const char *str1, const char *str2) 把 s ...

最新文章

  1. 解决计算机改名无法连接TFS的问题
  2. 新手该怎样学习网站分析?
  3. 0040 Java学习笔记-多线程-线程run()方法中的异常
  4. phpstrom正则替换
  5. android获取工程中所有类名,android 获取手机的所有程序和widget的包名和启动类名...
  6. bzoj1189 [HNOI2007]紧急疏散EVACUATE spfa+网络流+二分
  7. hdu1005 Number Sequence(寻找循环节)
  8. 很多人想不通为什么创业失败者众成功者少
  9. html轮播图向左改为向下,jQuery之轮播图向左滚动动画【原创】
  10. 网络爬虫、spider程序、网络蜘蛛
  11. listView的最简单的使用方法
  12. 设计模式 单例模式解决线程安全问题
  13. 恒生UFX 统一接入介绍
  14. 如何舒服地在图书馆用ipad入门深度学习【windows jupyter远程】
  15. Android Studio Menu item 的简单使用
  16. Todo Tree插件配置
  17. 2022-2028全球与中国期权及期货交易平台市场现状及未来发展趋势
  18. [TI TDA4 J721E] Sensor 鱼眼摄像头 LDC畸变校正模块LUT的创建和生成——详解
  19. bootloader学习笔记---第二篇
  20. 遇见物联,西电开启智慧校园新大门

热门文章

  1. 1. linux下gradle环境安装
  2. 手把手写C++服务器(31):服务器性能提升关键——IO复用技术【两万字长文】
  3. 实验3_B_小学奥数题
  4. mysql max_prepared_stmt_count_max_prepared_stmt_count 问题与Sysbench 工具简介
  5. forEach、map、for..of、for..in、for循环实现异步变同步的问题
  6. ISE 撰写Verilog问题记录(一)
  7. 类似美图秀秀 拼图 大致原理
  8. 求百分比时,为什么不能用二个long类型的数相除求百分比?
  9. 基于支持向量机 (SVM) 和稀疏表示理论 (SRC) 的人脸识别比较
  10. c语言正则表达式 windows,在C语言中使用正则表达式.doc