8.30携程前端笔试代码题

只写了解法,具体题目懒得回想了。。。这么写能通过,自己太菜了,只能写出这种代码。。。。
const q = parseInt(readline());
let arr = new Array(q);
let res = new Array(q).fill(0)
// print(res)
for(let i = 0; i < q; i++){
arr[i] = readline()
if(parseInt(arr[i]) % 2 == 0) {
res[i] = arr[i]
}else{
// 逐位记录数据
let temp = []
// 记录索引
let index = 0
let flag = 0
while(parseInt(arr[i])) {
temp.push(parseInt(arr[i]) % 10)
arr[i] = parseInt(arr[i]) / 10
}

for(let j = 0; j < temp.length; j++) {
if(temp[j] % 2 == 0) {
// 记录值为偶数的索引
flag = 1
index = j
break
}
}
if(flag) {
for(let j = 0; j < temp.length; j++) {
if(j != index) {
let str = res[i].toString()
res[i] = str + temp[j]
// print(res[i])
}
}
res[i] += temp[index]
// print(res[i])
}else{
res[i] = -1
}
}
}

for(let i = 0; i < res.length; i++) {
print(parseInt(res[i]))
}

第二题还是比较简单的 you连一起算2分 o连在一起算1分,求得到的最大分值
const q = parseInt(readline());
let result = new Array(q).fill(0)
for(let i = 0; i < q; i++) {
let line = readline()
let lines = line.split(" ")

let a = parseInt(lines[0])
let b = parseInt(lines[1])
let c = parseInt(lines[2])

let min = Math.min(a,b,c)
// print(min)
result[i] += min * 2
// print(result[i])
a -= min
b -= min
c -= min

let scoreB = b-1
// scoreB > 0 ? scoreB : 0
// print(scoreB)
if(scoreB > 0) {
result[i] += scoreB
}

}

for(let i = 0; i < q; i++) {
print(result[i])
}
第三题是图相关的,不会,直接pass
第四题写了一半还剩12分钟,没体力没精力,直接sotr排序返回第一项,过了11.76%
    
    总结:2.11/4
    可以说是秋招以来最简单的笔试。。。加油加油




#携程笔试#
全部评论
哈哈 我和你一样 最后一道题我排完序输出第一个过了11.76%,输出第二个就过了58.82%
点赞 回复 分享
发布于 2022-08-30 21:10 湖北

相关推荐

评论
点赞
15
分享
牛客网
牛客企业服务