没用正则,思路:
整体:使用数组,如果可以添加,将该位变为1,且人数减1,最后判断人数
1、使用循环,先判断开头和结尾是不是0,如果是0,则判断开头的后一个或结尾的倒数第二个是不是0,是将该位变为1,且人数减1;
2、如果位置处为0,则判断其前一位和后一位是不是0,如果都是则该位可以放一个人,人数减1,并将该位变为1;
3、最后判断人数,若小于等于0,则说明可以安排完,若大于0,则说明有人没有位置。
附上代码:
     var str="00000000001";
   var p=4;
   var arr=str.split("");
   var s=p;
   for(var i=0;i<arr.length;i++){
           if(i==0 && arr[i]==0 && arr[i+1]==0){
               arr[i]=1;
               s--;
           }else if(i==arr.length-1 && arr[i]==0 && arr[i-1]==0){
               arr[i]=1;
               s--;
           }else if(arr[i]==0 && arr[i-1]==0 && arr[i+1]==0){
               arr[i]=1;
               s--;
           }
       }
   if(s<=0) console.log("true");
   else console.log("false");