LeetCode——字符串相加(JS实现)

简介: LeetCode——字符串相加(JS实现)

题目描述

image.png

解题思路

由于本题不让使用BigInt等将字符串转换为整数形式,所以我们必须考虑使用其他的方法。所以本题考虑采用双指针的方法。

  1. 使用两个指针分别指向数字字符串的末尾位置。
  2. 使用变量carry记录进位。
  3. 当两个记录下标的位置大于等于0,或者进位不等于零的时候都进入循环。
  4. 在循环中当使用charAt这个API获取字符串对应下标的字符,两个字符相减会变成number类型。
  5. 每次循环结束都将两个指针左移一位。

解题代码

var addStrings = function(num1, num2) {
    let l = num1.length - 1;
    let r = num2.length - 1;
    let carry = 0;
    let ans = [];
    while (l >= 0 || r >= 0 || carry !== 0) {
        let c1 = l >= 0 ? num1.charAt(l) - '0' : 0;
        let c2 = r >= 0 ? num2.charAt(r) - '0' : 0;
        let sum = c1 + c2 +  carry;
        ans.push(sum % 10);
        carry = Math.floor(sum / 10);
        l--;
        r--;
    }
    return ans.reverse().join('')
};
复制代码

题目反思

  1. 两个数字字符相减会转换为number类型。
  2. 可以使用  字符串.charAt(index) 来获取字符串指定位置的字符。
相关文章
|
15天前
|
JavaScript 前端开发 索引
JavaScript中与字符串相关的方法
JavaScript中与字符串相关的方法
|
1月前
|
JavaScript 前端开发 索引
JavaScript字符串检查:从基础到高级
【2月更文挑战第26天】
26 0
JavaScript字符串检查:从基础到高级
|
8天前
|
JavaScript 前端开发
js字符串拼接
js字符串拼接
|
存储 编译器 Linux
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
|
15天前
|
JavaScript
js 字符串String转对象Object
该代码示例展示了如何将一个以逗号分隔的字符串(`'1.2,2,3,4,5'`)转换为对象数组。通过使用`split(',')`分割字符串并`map(parseFloat)`处理每个元素,将字符串转换成浮点数数组,最终得到一个对象数组,其类型为`object`。
|
19天前
|
JavaScript
JS去除字符串的方法
JS去除字符串的方法
|
23天前
|
JavaScript 前端开发
为 setTimeout 或 setInterval 提供一个字符串作为第一个参数(js的问题)
为 setTimeout 或 setInterval 提供一个字符串作为第一个参数(js的问题)
10 0
|
25天前
|
存储 JSON JavaScript
从复杂数据类型到字符串:JavaScript 中的转换方法
从复杂数据类型到字符串:JavaScript 中的转换方法
23 5
|
25天前
|
JavaScript 前端开发
JavaScript生成的随机数随机字符串JS生成的随机数随机字符串
JavaScript生成的随机数随机字符串JS生成的随机数随机字符串
14 1
|
1月前
|
SQL JavaScript
js开发:请解释什么是ES6的模板字符串(template string),并给出一个示例。
ES6的模板字符串以反引号包围,支持变量和表达式插入以及多行书写。例如,插入变量值`Hello, ${name}!`,计算表达式`${num1 + num2}`,以及创建多行字符串。模板字符串保留原始空格和缩进,简化了字符串拼接,提高了代码可读性。
18 6