当前位置: 首页 > 面试经验 >

美团8.13 前端笔试

优质
小牛编辑
136浏览
2023-03-28

美团8.13 前端笔试

用的赛码系统,前端题型是30道单选(非常杂,有计算机基础知识吧、行测一类的逻辑推理题、就是没有前端的HTML、css、js。可以说没法准备) + 编程题2道 + 附加题(一个写作题,没有分,没来得及写)
- 做完就报名重考了,还得受一遍折磨!
- 看草稿感觉梦回高中了

编程题

1. 魔法送外卖,骑手有 n 个订单,每个订单需要时间 t 配送,每个订单有一个截止时间;骑手来不及送到订单可以用魔法瞬间送达,不算时间,问最少需要使用几次魔法才能把所有订单准时送达。

  - 这题只A了55%,思路没问题。后来看大家的做法,应该是赛码网的输入的问题。各买家的截至时间是以字符串形式提供的,每个值用空格分开,而read_line()最多读取1024长度的字符串`,可能出现了很长的字符串没有读完的情况所以,`处理输入的方式`应该是:let line= gets(10000000),不妨取大一点!
- 笔试是ACM模式,这里只写了核心代码
calc_MagicTimes(6, 5, [5, 6, 7, 8, 9, 10])  // 4
function calc_MagicTimes(n, t, arr) {
  let index = 0,
    magicTimes = 0,
    costTime = 0;
  while (arr[index] != null) {
    // 看当前的外卖是否来得及送
    while (costTime + t > arr[index]) {
      magicTimes++;
      index++;
    }
    // 这个可以手动送了
    costTime += t;
    index++;
  }
  console.log(magicTimes);
}

2. 还原扑克牌,一副牌n张把第1、2张放到牌底,翻开第三张,并记录其值,然后丢掉该张;按这种做法不断翻牌记录,当只剩一张时直接记录。根据最后的记录结果,还原原来扑克牌的顺序

- 我只隐约觉得这里有啥规律,像是栈?`也想着逆操作回去,但是怎么逆呢?`后来一个一个试了36%
- 看了别人的逆操作方法,但还是想不清楚为啥是这样
function recoveCards(arr) {
  if(arr.length < 3) {
    return arr.join(' ');
  } else {
    let res = [];
    for(let i = arr.length - 1; i >= 0; i--) {
      // 这就是逆操作要做的事情
      res.unshift(arr[i]);
      res.unshift(res.pop());
      res.unshift(res.pop());
    }
    return res.join(" ");
  }
}
console.log(recoveCards([1, 2, 3, 4])); 


#美团##美团笔试#
 类似资料: