codeforces 982A Row

题意:

一个01串是否合法满足以下两个要求:

1.没有两个相邻的1;

2.在满足第一个条件的情况下,不能再放下更多的1。

判断一个给定的串是否合法。

思路:

最近cf的A怎么都这么坑啊。。。

首先是判断长度为1的情况,为0是No,1就是Yes;

然后判断长度大于1的,有2种一般情况,11,000

2种特殊情况,开头两个0,结尾两个0。

代码:

 #include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
int main()
{
int n;
char s[];
scanf("%d%s",&n,s);
bool f = ;
if (n == && s[] == '')
{
f = ;
}
for (int i = ;i < n-;i++) if(s[i] == '' && s[i+] == '') f = ;
for (int i = ;i <= n-;i++)
{
if (i == )
{
if (s[i] == '' && s[i+] == '') f = ;
}
else if (i == n - )
{
if (s[i] == '' && s[i+] == '') f = ;
}
else
{
if (s[i] == '' && s[i+] == '' && s[i+] == '') f = ;
}
}
if (f) puts("No");
else puts("Yes");
return ;
}
上一篇:linux中为什么已经是root用户仍不能执行程序


下一篇:脚手架vue-cli系列五:基于Nightwatch的端到端测试环境