Offer 驾到,掘友接招!我正在参与2022春招系列活动-刷题打卡任务,点击查看活动详情。
前言
数据结构与算法属于开发人员的内功,不管前端技术怎么变,框架怎么更新,版本怎么迭代,它终究是不变的内容。 始终记得在参加字节青训营的时候,月影老师说过的一句话,不要问前端学不学算法。计算机学科的每一位都有必要了解算法,有写出高质量代码的潜意识。
(一) 替换空格
1.1 题目描述
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
输入:s = "We are happy."
输出:"We%20are%20happy."
限制:
0 <= s 的长度 <= 10000
1.2 题目解析
方法一: 直接使用字符串的split方法,将字符串转化为数组,再通过join方法合并中间插入%20
var replaceSpace = function(s) {
return s.split(' ').join('%20')
};
方法二 循环遍历整个字符串,遇到为空值的就插入 %20
var replaceSpace = function(s) {
let res = ""
for(const i in s){
const cur = s[i]
if(cur==' '){
res+='%20'
}else{
res+=cur
}
}
return res
};
(二) 从尾到头打印链表
2.1 问题描述
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例 1:
输入:head = [1,3,2]
输出:[2,3,1]
限制:
- 0 <= 链表长度 <= 10000
2.2 问题分析
题目要求很简单,我们只需要不断迭代节点,直到链表的末尾,每次节点的值通过unshift插入到数组的第一位。
var reversePrint = function(head) {
const res = []
let p = head
while(p){
res.unshift(p.val)
p = p.next
}
return res
};
总结
- 字符串的split方法可以将字符串转化为数组
- Array.prototype.join 可以将数组转换为字符串
好了,本篇脚趾offer 替换空格 + 从尾到头打印链表
到这里就结束了,我是邵小白,一个在前端领域摸爬滚打的大三学生,欢迎👍评论。 借用鱼佬
的一句话:不管菜不菜,但是热爱!