题目
【找车位】 停车场有一横排车位,0代表没有停车,1代表有车。至少停了一辆车在车位上,也至少有一个空位没有停车。
为了防剐蹭,需为停车人找到一个车位,使得距停车人的车最近的车辆的距离是最大的,返回此时的最大距离。
输入描述:
1、一个用半角逗号分割的停车标识字符串,停车标识为0或1,0为空位,1为已停车。
2、停车位最多100个。
输出描述:
输出一个整数记录最大距离。
示例1:
输入
1,0,0,0,0,1,0,0,1,0,1
输出
2
代码实现
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
while ((line = await readline())) {
let arr = line.split(",").map(item => parseInt(item));
console.log(findPark(arr));
}
function findPark(arr) {
let num = 0;
for (let i = 0; i < arr.length; i++) {
if (arr[i] === 1) {
continue;
}
let leftNum = 0;
let rightNum = 0;
for (let j = i - 1; j >= 0; j--) {
if (arr[j] === 1) {
leftNum = i - j;
break;
}
}
for (let j = i + 1; j < arr.length; j++) {
if (arr[j] === 1) {
rightNum = j - i;
break;
}
}
let temp = Math.min(leftNum,rightNum);
num = Math.max(temp,num)
}
return num;
}
})();