题目描述:
食堂有一排面向墙的座位,独自来吃饭的同学都喜欢坐在这里,且来的人都喜欢独处,不会挨着其他人坐,现在长桌上已经有了一部分人在吃饭,但是又来了一部分的人用餐,不知来的人都能够找到左右的座位呢?
输入:
包括两个数据,一个字符串table表示桌子的长度,(其由“0”,和“1”组成,每个字符代表 一个座位,“1” 表示该座位有人,“0”表示没人),table长度<10000,一个正整数key表示来就餐的人数,key<10000;
输出:
一个布尔值,如果能够安排下,则返回true,否则返回false
样例输入:
10001
1
1000100001
2
100001001
3
输出:
true
true
false
完整代码如下:
<script type="text/javascript">
function fun(table,key){
var k=0; //动态保存两个1之间的0的个数
var n = table.length; //table数组的长度
var arr = []; //用来保存两个1之间0的个数
for(var i=0;i<n;i++){
if(table[i] == 0) k++;
else{
arr.push(k);
k=0;
}
}
arr.shift();
console.log(arr);
var len = arr.length;
if(len == 1){
if(arr[len-1] >= 2*key+1) return true;
else return false;
}
else{
for(var i=0;i<len;i++){
if(arr[i] >= 3) key--;
}
if(key <= 0) return true;
else return false;
}
}
var _key = parseInt(readline()); //输入要插入的人数
var _table=readline.split(""); //输入字符串
var res = fun(_table,_key);
//res = res ? 1 : 0;
console.log(res);
</script>