多写写 leetcode 43. 字符串相乘
难度:中等
频次:55
题目:
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。
注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。
解题思路: 拆出来的乘法最后的结果是string,最后用string+string得出string
注意:
- 前提先掌握字符串的相加
- string下的==和equals的区别
- 得反转
代码
class Solution {public String multiply(String num1, String num2) {// ==和equals的区别if(num1.equals("0") || num2.equals("0")) return "0";int len1=num1.length();int len2=num2.length();//每一行的计算结果String sum="";//都是从高位到低位for(int i=len2-1;i>=0;i--){StringBuilder temp=new StringBuilder();//乘法进位int carry=0;//补0,因为后面后面会反转,所以放前面for(int k=0;k<len2-i-1;k++){temp.append('0');}int number2=num2.charAt(i)-'0';for(int j=len1-1;j>=0||carry!=0;j--){//进位int number1=j<0?0:num1.charAt(j)-'0';int a=(number1*number2+carry)%10;temp.append(a);carry=(number1*number2+carry)/10;}//最后记得反转sum=add(sum,temp.reverse().toString());}return sum;}public String add(String num1,String num2){int len1=num1.length()-1;int len2=num2.length()-1;StringBuilder sum=new StringBuilder();int i=0;int carry=0;while(len1>=0||len2>=0||carry!=0){//这里只需要单独判断就行了,不需要放一起int temp1=len1>=0?num1.charAt(len1)-'0':0;int temp2=len2>=0?num2.charAt(len2)-'0':0;sum.append((temp1+temp2+carry)%10);carry=(temp1+temp2+carry)/10;len2--;len1--;}//最后记得反转return sum.reverse().toString();}
}
多写写 leetcode 43. 字符串相乘相关推荐
- leetcode -43 -字符串相乘 -java版
文章目录 题目 代码 题目 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 示例 1: 输入: num1 = &quo ...
- LeetCode 43. 字符串相乘【c++/java详细题解】
目录 1.题目 2.思路 3.c++代码 4.java代码 1.题目 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. ...
- LeetCode 43字符串相乘44通配符匹配
原创公众号:bigsai,回复进群加入力扣打卡群. 字符串相乘 题目描述: 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形 ...
- LeetCode 43. 字符串相乘(大数乘法)
文章目录 1. 题目 2. 小学竖式乘法 2.1 普通版 2.2 优化版 1. 题目 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示 ...
- C++ ,leetcode 43. 字符串相乘 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式
一.思路: 字符串逆序,然后遍历两个逆序后的字符串,然后对应的字符相乘,i+j等于它的位数. string multiply(string num1, string num2) {reverseStr ...
- LeetCode #43字符串相乘
1.背景知识 1.1 String,StringBuffer,StringConstructor String类是不可变类.StringBuffer和StringConstructor是可变类,字符串 ...
- leetcode 43. 字符串相乘(Multiply Strings)
目录 题目描述: 示例 1: 示例 2: 解法: 题目描述: 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 示例 1 ...
- leetcode 43.字符串相乘
题目 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 示例 1: 输入: num1 = "2", ...
- 【Day24】 LeetCode算法题 (注释详细+解题思路)[43. 字符串相乘 ] [1800. 最大升序子数组和]
刷题打卡,第 二十四 天 题目一.43. 字符串相乘 题目二.1800. 最大升序子数组和 题目一.43. 字符串相乘 原题链接:43. 字符串相乘 题目描述: 给定两个以字符串形式表示的非负整数 n ...
最新文章
- 社交网络图挖掘1--将社交网络看作图及其聚类
- Mac-使用技巧之快速新建txt文本
- 北大青鸟广州天河:高中生做技术经理!
- c 语言cad 二次开发,c#对AutoCAD二次开发
- java基础—Hashtable,HashMap,TreeMap的差别
- 持续集成工具jenkins的部署--Windows篇
- Python中查找包含它的列表元素的索引,index报错!!!
- word修改公式中的部分字体
- Loadrunner11完美破解小笔记
- android studio连接服务端代码,Android studio - 无法连接到LDAP服务器(示例代码)
- java文档注释加减乘除,java精确的加减乘除
- Redis基本数据类型、应用场景、操作指令
- PHP团队 编码规范 代码样式风格规范
- 常用的 Cron 时间表达式 定时器 正则表达式
- 系统集成项目管理工程师10大管理5个过程组47个过程域
- 墓碑上的字符C语言,墓碑上常见的“故显考、故显妣、先考、先妣”,分别是什么意思?...
- RestTemplate 下载文件
- 微信朋友验证消息是什么来源_微信好友来源朋友验证消息
- 简易购物车实体类的设计
- 对于嵌入式为什么要有uboot的深度解析