首页 > 其他分享 >两个字符串的乘法

两个字符串的乘法

时间:2022-10-21 10:34:42浏览次数:50  
标签:两个 num1 num2 int pos length 字符串 sb 乘法

见leetcode43

 

Given two non-negative integers num1 and num2 represented as strings, return the product of num1 and num2.

Note:

  1. The length of both num1 and num2 is < 110.
  2. Both num1 and num2 contains only digits 0-9.
  3. Both num1 and num2 does not contain any leading zero.
  4. You must not use any built-in BigInteger library or convert the inputs to integer directly.
https://discuss.leetcode.com/topic/30508/easiest-java-solution-with-graph-explanation //num1的第i位和num2的第j位相乘,结果存在结果字符串的[i+j, i+j+1] class Solution {     public String multiply(String num1, String num2) {        int m = num1.length();        int n = num2.length();        int[] pos = new int[m + n];        for (int i = m - 1; i >= 0; i--) {            for (int j = n - 1; j >= 0; j--) {               int mul = (num1.charAt(i) - '0') * (num2.charAt(j) - '0');               int p1 = i + j;               int p2 = i + j + 1;               int sum = mul + pos[p2]; //此时的pos[p2]就是进位值                              pos[p1] += sum / 10;               pos[p2] = sum % 10;            }        }                StringBuilder sb = new StringBuilder();        for (int p : pos)            if (!(sb.length() == 0 && p == 0))               sb.append(p);        return sb.length() == 0 ? "0" : sb.toString();     } }

标签:两个,num1,num2,int,pos,length,字符串,sb,乘法
From: https://www.cnblogs.com/MarkLeeBYR/p/16812626.html

相关文章

  • JavaScript获取两个数组数组的差集
    JavaScript获取两个数组数组的差集JavaScript在ES6中增加了很多Array对象的方法,这让我们在做数组元素操作的时候方便很多。以下便是分别通过Array的some,find,findIndex......
  • 初识字符串
    社么是字符串由双引号括起来的一串字符叫做字符串字符串的标志是由\0以结束标语的,以\0为结束标志,字符串长度不变  没有引用头文件     字符串结束标志......
  • js给定两个数组,写一个方法来计算它们的交集?
    JavaScript给定两个数组,写一个方法来计算它们的交集   查看代码varnums1=[1,2,2,1,0],     nums2=[2,2,3,4,0];   ......
  • 技巧:设置条件字符串
       并没太多可讲的有趣的一点在于判断识别码是否正确的时候,为了能够判断“X”的情况,我使用了if语句,但是实际上,我们使用一个长的字符串mod[20]=“0123456789X”就可......
  • 寻求两个数对之间的最大乘积
    1.问题描述两个数对(a,b)和(c,d)之间的乘积差定义为(a*b)-(c*d)。例如,(5,6)和(2,7)之间的乘积差是(5*6)-(2*7)=16。给你一个整数数组nums......
  • 用99乘法表帮助理解for循环
    目录用99乘法表帮助理解for循环一、99乘法表的shell脚本二、拆分脚本各行三、延展的另一写法用99乘法表帮助理解for循环一、99乘法表的shell脚本[rocky8.6]vim99.sh......
  • 【java json基础】字符串转json json转字符串 json数组转换 【java基础知识】【实用】
    读书就是:从薄读厚,再从厚读薄的过程。(前部分:问答,后部分:测试举例)         数据测试:举例:      ......
  • 【Python】第3章-14 字符串字母大小写转换
    本题要求编写程序,对一个以“#”结束的字符串,将其小写字母全部转换成大写字母,把大写字母全部转换成小写字母,其他字符不变输出。输入格式:输入为一个以“#”结束的字符串(不......
  • 【Python】第3章-13 字符串替换
    本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:原字母 对应字母A ZB YC XD W… …X CY BZ A输入格式:输入在一行中给出一个不超过80个字符、......
  • C语言中字符串详解
    C语言中字符串详解字符串时是C语言中非常重要的部分,我们从字符串的性质和字符串的创建、程序中字符串的输入输出和字符串的操作来对字符串进行详细的解析。什么是字符......