free-programming-books icon indicating copy to clipboard operation
free-programming-books copied to clipboard

String-解题: 字符串相加(NO.415)

Open meibin08 opened this issue 5 years ago • 1 comments

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

注意:

  1. num1 和num2 的长度都小于 5100.
  2. num1 和num2 都只包含数字 0-9.
  3. num1 和num2 都不包含任何前导零。
  4. 你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。

面试进阶题库

原题链接:力扣(LeetCode)415. 字符串相加

meibin08 avatar Mar 20 '20 13:03 meibin08

解题思路

  • max取两数最大的长度,
  • 递减循环一位一位进行计算,
  • %大于10,取0,
  • floor向下取整,
  • 最后一位,且大于10则直接补一位,返回,否则循环结束返回结果;

代码

/**
 * @param {string} num1
 * @param {string} num2
 * @return {string}
 */
var addStrings = function(num1, num2) {

  let len1 = num1.length-1;
  let len2 = num2.length-1;
  let maxNum = Math.max(len1,len2);
  let result ="";
  let carry = 0;
  for(let i=0;i<=maxNum;i++){
    let key1 = parseInt(num1[len1-i]||0);
    let key2 = parseInt(num2[len2-i]||0);
    let item = key1+ key2 + carry;
    result = (item%10)+result;
    carry = Math.floor(item/10);
    if(i == maxNum && carry == 1){
      return carry+result;
    } 
  }
  return result;
};

Js中文网,React-hooks 抽象组件 本文主要内容来源于前端精读系列的怎么用 React Hooks 造轮子 1 引言 上周的 精读《React Hooks》 已经实现了对 React…

meibin08 avatar Mar 20 '20 13:03 meibin08