富途牛牛笔试
算法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); })();#富途笔试#