当前位置: 首页 > news >正文

网站要素的优化设计昆明网站建设推荐

网站要素的优化设计,昆明网站建设推荐,WordPress域名管理插件,怎么做代理ip网站43. 字符串相乘 - 力扣(LeetCode) 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。 示例…

43. 字符串相乘 - 力扣(LeetCode)

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

注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。

示例 1:

输入: num1 = "2", num2 = "3"
输出: "6"

示例 2:

输入: num1 = "123", num2 = "456"
输出: "56088"

提示:

  • 1 <= num1.length, num2.length <= 200
  • num1 和 num2 只能由数字组成。
  • num1 和 num2 都不包含任何前导零,除了数字0本身。

 

class Solution {public String multiply(String num1, String num2) {int flag = 0;int len1 = num1.length();int len2 = num2.length();StringBuilder str = new StringBuilder(len1+len2);init(str,len1+len2);for(int i = len1 - 1;i >= 0 ; i--) {int tmpi =  num1.charAt(i) - '0';int j = 0;for(j = len2 - 1; j >= 0 ; j--) {int index = (len1-i-1)+(len2-1-j);int tmp = str.charAt(index) - '0';int tmpj = num2.charAt(j) - '0';tmp = tmp + tmpi*tmpj + flag;flag = tmp/10;tmp %= 10;str.setCharAt(index,(char)(tmp+'0'));}while(flag >= 1) {int index = (len1-1-i)+(len2-1-j);int tmp = str.charAt(index) - '0';tmp = tmp+flag;flag = tmp/10;tmp%=10;    str.setCharAt(index,(char)(tmp+'0'));j--;}} int len = len1+len2-1;while(str.charAt(len) == '0') {if(len == 0) break;str.delete(len,len+1);len--;}str.reverse();return str.toString();}public void init(StringBuilder str,int len) {for(int i = 0; i < len ; i++) {str.append(0);}}
}

        今天是一道中等题。这道题是有关于字符串的,实际上跟大数乘法的方法相类似。如果能够搞懂这道题,那么大数乘法,大数加法应该就都没有问题了。

        读完题目,发现这道题要求我们对两个字符串进行相乘的操作。题目要求不能直接将给的字符串转成数字。所以,需要使用大数乘法。相加,是处理运算完数字放的位置,以及有无进位问题。而乘法,则是在加法的基础上多加一个两个数的乘数而已。

        第一个难点:位置。运算完的数字,应该放在哪个位置?我们需要先了解一下乘法。i位数乘j位数。第0位乘第0位放在第0位,第0位乘第1位放在第1位,第1位乘第1位放在第2位。(这里认为数字最低位是第0位),那么,发现了吗?乘法:i位*j位是放在i*j位上的。

        第二个难点:进位问题。如果是加法,那么产生的进位不会超过1。但是,乘法有可能产生1-9的进位,所以在判定是否进位时,需要使用>=1来判断,不再是==1来判断。

        那么,整体就出来了。i位数*j位数,最多产生i+j位的数,我们创建i+j位的StringBuild用来放结果。flag 用于记录是否有进位。进入循环后,每位相乘,index计算运算完的数字应该放在哪个位置。而%10操作可以判断进完位的余数,/10的操作可以判断进位的个数。最后如果有超过两数位数的进位,就单独处理。由于使用append,所以结果相反,返回之前需要reverse()一下。

        如果有其他解法,也可以发在评论区。

http://www.yayakq.cn/news/900943/

相关文章:

  • 医院网站建设与维护题库谷歌paypal官网登录入口
  • 个体户做网站是怎么备案临沂市建设职工中等专业学校校长
  • 凡科建站建网站做网站需要学哪些语言
  • 宁波市网站建设网站建设模板元素是什么
  • 青岛网站建设搜q.479185700火车头发布wordpress带磁力链
  • 自适应营销网站模板公司简介制作
  • 现工作室专做网站建设等应用程序项目,但工作室名暂为律师个人网站建设
  • 西安公司网站制作价格有没有什么做高数的网站
  • 电商网站基本功能wordpress搜索返回页面
  • dedecms 手机网站专业做中文网站
  • 芜湖服装网站建设网站seo优化建议
  • 长沙网站收录网站设计青岛
  • wordpress多站点详细设置(图解)贵州省建设厅建筑质监站网站
  • 免费空间已经注册 怎么做网站衡水市住房和城乡规划建设网站
  • 石家庄网站建设seo公司怎么申请自己公司的邮箱
  • 08服务器做网站南宁网页制作培训
  • 网站静态界面挖取回忆网站模板
  • 桂林景区网站策划京东网站是哪个公司做的
  • 泰安整站优化js特效网站
  • 青岛手机建站公司济南网站app开发
  • 辽阳网站建设公司网页文章 在wordpress
  • 怎么建立免费的网站购物帮做特惠的网站
  • 有关电子商务网站建设与维护的书籍有电脑网站怎样建手机号码
  • 网站附件做外链天津建设工程信息网网上报名
  • 辽宁奔之流建设工程有限公司网站许昌公司网站开发
  • 上海比较好的网站制作公司自贡市规划建设局网站
  • 响应式网站的优势有那些的呢网站刷流量会怎么样
  • 西安市规划建设局网站私密浏览器在线观看
  • 长安网站建设好吗wordpress换地址
  • 网站备案多长时间软文写作