站长推荐
点击排行
关注我 么么哒

京东2019春招前端开发类试卷
- 学无止境
- 时间:Thu Jun 25 2020 09:58:46 GMT+0800 (China Standard Time)
- 166人已阅读
简介
京东2019春招前端开发类试卷 编程题
1.拉齐有一个01序列,他可以对这个序列进行任意多次变换,每次变换都是把序列的最后若干个元素放到最前面,例如:010011,将最后3个元素011放到最前面,序列变为011010。所有变换结束后,拉齐需要挑出一个全为1的连续区间,要求最大化区间长度。
输入描述:
共一行,一个01串,仅包含0或1。序列长度不超过50000。
输出描述:
一个整数,表示最长区间的长度。
例子1
输入:
11011
输出:
4
参考代码:
while(line = readline()) {
let arr = line.match(/1+/g)
let result = 0
if (arr !== null){
arr.forEach(item=>{
result = Math.max(result,item.toString().length)
})
}
if(result !== line.length) {
if(line[0] == '1' && line[line.length-1] == '1') {
result = Math.max(result, arr[0].concat(arr[arr.length-1]).toString().length)
}
}
print(result)
}
2.已知一个奇怪的队列,这个队列中有n个数,初始状态时,顺序是1,2,3,4,…n,是1-n按顺序排列。这个队列只支持一种操作,就是把队列中的第i号元素提前到队首(1<i<=n),如有4个元素,初始为1,2,3,4,可以将3提前到队首,得到3,1,2,4 。 现在给出一个经过若干次操作之后的序列,请你找出这个序列至少是由原序列操作了多少次得到的。
输入描述:
第一行是一个整数n(1<=n<=10^5),表示序列中数字的数量。 接下来一行有n个数,是1-n的一个全排列。数字之间用空格隔开。
输出描述:
输出仅包含一个数字,表示至少操作了几次
例子
输入:
5 5 2 1 3 4
输出:
2
参考代码:
let linNum = 0
while(line = readline()) {
linNum ++
arr = line.split(" ")
let result = 0
if(linNum === 1) {
continue
} else {
for(let i = arr.length - 1; i > 0 ;i--) {
if (Math.max(arr[i],arr[i+1]) == arr[i]) {
result = i+1
break
}
}
print(result)
}
}
下一篇:【转】js同源限制