富途牛牛笔试
算法1 A 80% 题目阅读量非常大,虽说不算很难,但还有20%不知道是什么情况没考虑。
输入
测试数n
测试1 学生数 s1
接着是s1个学生排队信息str 5个信息 分别是
str[0]学生到达时间 str[1]学生强壮程度 str[2]打饭时间 str[3]吃饭时间 str[4]班会时间
排队持续按照:到达时间更早》更强壮》输入顺序优先 。意思是到达时间相同比强壮,都相同比谁输入次序先。
能否赶上班会条件:吃完饭的时间〈 班会时间,小于不能等于。
打饭时间是叠加的,聪明的同学如果发现自己不够时间,直接不排队,不会损耗时间。
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void (async function () {
// Write your code here
let len = parseInt(await readline());
for (let i = 0; i < len; i++) {
let n = parseInt(await readline());
let arr = [];
for (let j = 0; j < n; j++) {
arr.push((await readline()).split(" ").map((el) => parseInt(el)));
}
compute(n, arr);
}
function compute(num, data) {
let sortData=data.map((el,i)=>[...el,i])
sortData=sortData.sort((a,b)=>{
if(a[0]==b[0]){
if(a[1]==b[1]) return a[5]-b[5]
else return b[1]-a[1]
}else return a[0]-b[0]
})
let curTime=sortData[0][0]
let str = new Array(num).fill(0);
for(let i=0;i<num;i++){
if(curTime+sortData[i][2]+sortData[i][3]<sortData[i][4]){
str[sortData[i][5]]=1
curTime+=sortData[i][2]
}else{
str[sortData[i][5]]=0
}
}
console.log(str.join(''));
}
})();
算法2 A100%
元音aeiou不换
辅音一个换三个:自己、最靠近自己的元音(字母表顺序)、自己的下一个辅音
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void (async function () {
// Write your code here
let originStr = await readline();
let yuan = ["a", "e", "i", "o", "u"];
let fu = "bcdfghjklmnpqrstvwxyz".split("");
let res = "";
for (let i = 0; i < originStr.length; i++) {
res += finds(originStr[i]);
}
function finds(str) {
let temp = "";
if (yuan.includes(str)) return str;
temp += str;
temp += findnext(str);
temp += fu[(fu.indexOf(str) + 1)%fu.length];
// console.log(str)
// console.log(findnext(str))
// console.log(fu[fu.indexOf(str) + 1])
return temp;
}
function findnext(str) {
let min = 99;
let minstr = str;
let cur = str.charCodeAt(0);
yuan.forEach((el) => {
let temp = Math.abs(el.charCodeAt(0) - cur);
if (temp < min) {
min = temp;
minstr = el;
}
});
return minstr;
}
console.log(res.length-originStr.length);
})();
#富途笔试#