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) 来获取字符串指定位置的字符。
相关文章
|
2天前
|
JSON JavaScript 前端开发
js将json字符串还原为json对象
【5月更文挑战第14天】js将json字符串还原为json对象
13 1
|
2天前
|
JavaScript 数据处理 索引
js字符串截取
js字符串截取
11 1
|
2天前
|
JavaScript 前端开发
JavaScript中科学计数法转化为数值字符串形式
JavaScript中科学计数法转化为数值字符串形式
|
4天前
|
存储 算法 安全
【刷题】 leetcode 面试题 01.06 字符串压缩
来看效果: 非常好!!!过啦!!!
25 5
【刷题】 leetcode 面试题 01.06 字符串压缩
|
4天前
leetcode代码记录(删除字符串中的所有相邻重复项
leetcode代码记录(删除字符串中的所有相邻重复项
12 0
|
4天前
|
存储 JavaScript 前端开发
JavaScript字符串方法详解
JavaScript字符串方法详解
18 0
|
4天前
|
SQL 缓存 JavaScript
深入解析JavaScript中的模板字符串
深入解析JavaScript中的模板字符串
14 1
|
4天前
|
JavaScript 索引
js字符串操作的方法
js字符串操作的方法
12 0
|
4天前
|
JavaScript 前端开发 索引
js关于字符串的方法
js关于字符串的方法
12 0