第一题:收集卡牌(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秋招#