美文网首页
leetcode_43字符串想加

leetcode_43字符串想加

作者: 看到这朵小fa了么 | 来源:发表于2020-08-13 16:26 被阅读0次

用数据存储后按位相加,记录进位,但是这个自动转化为指数表示法了,过不了用例,吐血

// var multiply = function(num1, num2) {
//   if(num1==0|| num2==0) return "0"
//   let list = num2.split('')
//   let length = list.length-1
//   let result = list.map((item, i) => {
//       return (Number(item) * Number(num1) * Math.pow(10, length-i)).toString().split('')
//   })
  
//   let temp = 0
//   let number = num1.length+num2.length
//   let resultList = Array(number).fill(0)
//   for(let i=0; i<number; i++){
//      let sum = 0
//      for(let j=0; j<=length; j++){
//          sum+=Number(result[j].pop() || 0)
//      }
//      sum+=temp
//      let before = parseInt(sum / 10)
//      if(before>0) {
//          temp = before
//      } else {
//          temp = 0
//      }
//      resultList[i] = sum % 10
//   }
//   if(temp > 0) {
//       resultList.push(temp)
//   }
//   let endList = resultList.reverse()
//   if(endList[0]==0) {
//       endList.shift()
//   }
//   return endList.join('')
// };

用一个数组来存储,每次进行一个位的乘积更新,类似动态规划

var multiply = function (num1, num2) {
  if (num1 === '0' || num2 === '0') return '0'
  let n = num1.length,
  m = num2.length
  dp = new Array(n + m).fill(0)

  for (let i = n - 1; i >= 0; i--) {
    for (let j = m - 1; j >= 0; j--) {
      // dp[i+j+1] 包含上一轮该乘积
      let sum = dp[i + j + 1] + parseInt(num1[i] * num2[j], 10)
      // 当前位i+j+1
      dp[i + j + 1] = parseInt(sum % 10, 10)
      // 上一位
      dp[i + j] = dp[i + j] + parseInt(sum / 10, 10)
    }
  }
  return dp.join('').replace(/^0*/, '')
}

相关文章

  • leetcode_43字符串想加

    用数据存储后按位相加,记录进位,但是这个自动转化为指数表示法了,过不了用例,吐血 用一个数组来存储,每次进行一个位...

  • vim命令

    查找字符 我们通常在vim下要查找字符串的时候, 都是输入 / 或者 ? 加 需要查找的字符串来进行搜索,比如想...

  • python中 r'', b'', u'', f'' 的含义

    字符串前加 rr"" 的作用是去除转义字符. 字符串前加 ff 的作用是表示在字符串内支持大括号内的python ...

  • ivew radio 单选 1,0 字符串和数字怎么传

    字符串,label不用加: 数字

  • python - string(2)

    打标点符号前要加 \ 如果想输入很长的字符串(需要换行),用 ''' ''' 即triple-quoted可解决 ...

  • Python物语:字符串

    python字符串前面加u,r,b的含义 1、字符串前加 u 例:u"我是含有中文字符组成的字符串。" 作用:后面...

  • 2019-10-09

    字符串 单双引号都可 \转义符 print时,整个字符串引号前加r,忽略转义 多行字符串,行尾加\忽略本行空格 3...

  • 怎么给字符串加索引

    怎么给字符串加索引 比如说,要给邮箱这样的字段加索引,这样长字符串加索引会有什么样的问题? 前缀索引,如果长度长,...

  • PHP中字符串函数库常用函数解析 -- PHP 学习 (十一)

    常用字符串函数分类: 字符串长度, 字符串查找, 字符串大小写转换, 字符串截取, 字符串 ASCII, 字符串加...

  • python2.7.*乱码问题办法

    方法1: 在源代码文件中第一行添加: 方法2: 在字符串前加"u" 方法2中字符串加"u"后,字符串被转成"uni...

网友评论

      本文标题:leetcode_43字符串想加

      本文链接:https://www.haomeiwen.com/subject/adqidktx.html