题意:输入n个椅子数,然后输入一串01字符串,0表示座位为空,1表示座位被占。让你判断给的座位是不是占用最大的。
座位最大满足下面两个条件:
- There are no neighbors adjacent to anyone seated.没有座位两个相邻的座位被占。
题解:暴力 最开始,我以为是让座位利用最大,0和1隔开一个才是,结果并不是,输出NO的情况是有三个连续的“000”座位利用率不够,还有就是'11'这种不合法的占座。其余都YES,为了特殊处理一个座位的那种情况,我们可以特判或者首尾都加个'0'.
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
string s;
cin>>n>>s;
s='0'+s+'0';
if(s.find("000")==-1&&s.find("11")==-1) puts("Yes");
else puts("No");
return 0;
}