滴滴出行高级Node.js开发工程师笔试题2024

今天参加了一个滴滴出行的Node.js岗位面试,一面为腾讯视频面试,俩个面试官。面试官比较深入问一些你过去做个的项目,问你解决了哪些棘手的问题。
还有就是他们比较关注性能优化,会问你们现在项目的峰值QPS是多少,如何进行优化等等
最后会在聊天窗口发你两道笔试题,让你在自己本地IDE编写代码调试,但是要开启屏幕共享,方便让他们欣赏你编码的过程。
下面贴一下原题

笔试题1

给定由 a-z A-Z 空格 组成的一个字符串,要求:按字典序输出该字符串中出现的全部字母去重并转化为小写,并给出时间复杂度

例:输入 Hello World,输出 dehlorw

js 复制代码
let str = "Hello World";
let result = str
  .toLowerCase()
  .split("")
  .filter((item) => item !== " ")
  .sort();

console.log([...new Set(result)].join(""));

上面的代码仅供参考,大家可以自行研究性能更高的方式。

笔试题2

给定一个域和一个字符串,若该字符串是一个合法的http/https链接,返回该链接是否在给定域或者其子域下,否则报错退出

例:

输入 didi.com, http://fast.didi.com/foo/bar 返回 true

输入 didi.com, http://fast.uber.com/foo 返回 false

输入 didi.com, fast.didi.com throw Error

你可能也想到使用正则了吧

bash 复制代码
let str = "http://fast.didi.com/foo/bar";
let domain = "didi.com";

function test(domain, str) {
  if (!/^http/.test(str)) {
    throw new Error("str is not a valid url");
  }
  return str.includes(domain);
}

// console.log(test(domain, "http://fast.didi.com/foo/bar"));
// console.log(test(domain, "http://fast.uber.com/foo"));
// console.log(test(domain, "fast.didi.com"));
// console.log(test(domain, "xxhttp://fast.didi.com.cn"));

其实上面的正则还是有问题的,只是可以通过当前给定的测试用例。

更好的方法可以借助javascript的内置对象URL来处理这个问题:

bash 复制代码
function isValidURL(urlString) {
  try {
    new URL(urlString);
    return true; // 如果没有抛出错误,则URL是合法的
  } catch (e) {
    return false; // 如果抛出了错误,则URL不是合法的
  }
}

希望可以帮到你。

相关推荐
重铸码农荣光10 小时前
从「[1,2,3].map (parseInt)」踩坑,吃透 JS 数组 map 与包装类核心逻辑
面试·node.js
Jonathan Star13 小时前
Next.js、NestJS、Nuxt.js 是 **Node.js 生态中针对不同场景的框架**
开发语言·javascript·node.js
Q_Q51100828520 小时前
python+django/flask的眼科患者随访管理系统 AI智能模型
spring boot·python·django·flask·node.js·php
Q_Q51100828521 小时前
python+django/flask的在线学习系统的设计与实现 积分兑换礼物
spring boot·python·django·flask·node.js·php
学习3人组1 天前
Node.js 登录接口实现
node.js
Q_Q5110082851 天前
python+django/flask的车辆尾气检测排放系统-可视化大屏展示
spring boot·python·django·flask·node.js·php
学习3人组1 天前
Node.js 网站服务器开发
运维·服务器·node.js
Q_Q19632884751 天前
python+django/flask基于Echarts+Python的图书零售监测系统设计与实现(带大屏)
spring boot·python·django·flask·node.js·php
粥里有勺糖1 天前
视野修炼-技术周刊第126期 | TypeScript #1
前端·node.js·github
玖釉-1 天前
解决PowerShell执行策略导致的npm脚本无法运行问题
前端·npm·node.js