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

小红书前端笔试9.25

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

小红书前端笔试9.25

第一题:收集卡牌(100%)
const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
})

let store = [];
rl.on('line', line => {
  store.push(line);
})

rl.on('close', () => {
  let n = parseInt(store.shift());
  let nums = store[0].split(' ').map(item => parseInt(item));
  let arr = new Array(n + 1).fill(0);
  let result = 0;
  for (let i = 0; i < nums.length; i++) {
    // 对nums中的数字对应的位置存储
    arr[nums[i]]++;
  }
  console.log(arr);
  // 计算最大的数字到多少
  for (let i = 1; i < arr.length; i++) {
    if (arr[i] === 0) {
      console.log(result);
      break;
    } else {
      result++;
    }
  }
})
第二题:将字符串1变为串2(100%)
const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
})

let store = [];
rl.on('line', line => {
  store.push(line);
})

rl.on('close', () => {
  let n = parseInt(store.shift());
  for (let i = 0; i < n; i++) {
    let s1 = store.shift().split('');
    let s2 = store.shift().split('');
    // console.log(s1, s2);
    let judge = judgeStr(s1, s2);
    if (judge) {
      console.log('yes');
    } else {
      console.log('no');
    }
  }
})

function judgeStr(s1, s2) {
  let point = 0; // 标识s2能判断的位置
  for (let i = 0; i < s1.length; i++) {
    if (s2[point] == s1[i]) {
      point++;
    }
  }
  if (point === s2.length) {
    return true;
  } else {
    return false;
  }
}
第三题:找到最近节点(没有测试,只是通过测例)
const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
})

let store = [];
rl.on('line', line => {
  store.push(line);
})

rl.on('close', () => {
  let n = parseInt(store.shift());
  let bian = store.shift().split(' ').map(item => parseInt(item));
  let chang = store.shift().split(' ').map(item => parseInt(item));
  let find = store.shift().split(' ').map(item => parseInt(item));
  let min = Infinity;
  // 使用[0]表示key:1的节点
  let arr = [{key: 1, val: 0}];
  for (let i = 0; i < n - 1; i++) {
    arr.push({key: bian[i] + 1,val: chang[i]});
  }
  // console.log(arr);
  for (let i = 0; i < find.length; i++) {
    min = Math.min(min, getLeft(arr, find[i] - 1) + getRight(arr, find[i] - 1));
    console.log('------');
  }
  console.log(min);
})

function getLeft(arr, cur) {
  let result = 0;
  let tmp = arr[cur].val;
  for (let i = cur - 1; i >= 0; i--) {
    result += tmp;
    tmp += arr[i].val;
  }
  console.log(tmp);

  return result;
}

function getRight(arr, cur) {
  let result = 0;
  let tmp = 0;
  for (let i = cur + 1; i < arr.length; i++) {
    tmp += arr[i].val;
    result += tmp;
  }
  console.log(result);
  return result;
}





#小红书##小红书笔试##2022秋招#
 类似资料: