前端常见算法题集

很久没练算法了,打算接下来一段时间每天坚持写题和写题解

这是一篇前端常用算法题集,题目从从简到难,编程语言主要为JavaScript,顺便练习和熟记js的各种方法...

目录

字符串类

1.字符串相加


字符串类

下图为js中常用的字符串方法

1.字符串相加

415. 字符串相加 - 力扣(LeetCode)

用了双指针和while循环从字符串的最右边开始遍历

需要注意的是

1.while循环中的carry !== 0 因为最后一次相加可能会有进位产生,也是需要加上去的

2.字符 - '0'的结果是number类型

3.sum / 10取的是十位,但是这样是浮点类型的,需要用Math.floor方法取整

  1. 最后将数组反转(reverse)再转为字符串(join)

同理 如果将字符串反转并转为数组的方法为 let arr = s.split("").reverse().join("")

bash 复制代码
var addStrings = function(num1, num2) {
    let num1Index = num1.length - 1
    let num2Index = num2.length - 1
    let carry = 0
    let ans = []
    while(num1Index >= 0 || num2Index >= 0 || carry !== 0){
        let c1 = num1Index >= 0 ? num1.charAt(num1Index) - '0' : 0
        let c2 = num2Index >= 0 ? num2.charAt(num2Index) - '0' : 0
        let sum = c1 + c2 + carry
        ans.push(sum % 10)
        carry = Math.floor(sum / 10)
        num1Index--
        num2Index--
    }
    return ans.reverse().join("")
}
相关推荐
IT_陈寒14 小时前
Redis踩了个大坑,原来DEL命令也会卡住整个实例
前端·人工智能·后端
一个水瓶座程序猿.14 小时前
基于Spring AI RAG 的AI知识库前端交互实现
前端·人工智能·spring
breeze jiang14 小时前
React + TypeScript 编辑表单:为什么要区分 name 和 editingName
前端·typescript
会编程的土豆15 小时前
LeetCode 热题 HOT100(一):哈希表与双指针入门(Go 实现)
算法·leetcode·职场和发展
学习中.........15 小时前
并行 BPE 训练 与 手写 `Tokenizer`
人工智能·算法·机器学习·语言模型
米码收割机15 小时前
【移动】线上购物移动端网站(源码+文档)【独一无二】
java·开发语言·前端·python·django
科学实验家15 小时前
动态规划2
算法·动态规划
To_OC15 小时前
对接大模型流式接口,我被一个 ReadableStream 卡了半小时
前端·node.js·llm
imuliuliang1 天前
关于数据结构在算法设计中的核心作用解析7
算法
石小石Orz1 天前
我发现了开发者AI产品营收的新方向
前端·虚拟现实