文章
39
粉丝
74
获赞
1
访问
19.0k
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int isrelate(char b[],int n)
{
if(n<=3)return 0;
char c[4];
int count=0;
for(int i=0; i<=n-4; i++)
{
c[0]=b[i];
c[1]=b[i+1];
c[2]=b[i+2];
c[3]=b[i+3];
if(strcmp(c,"2012")==0)count++;
}
return count;
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
char a[1000];
scanf("%s",&a);
char b[1000];
if(n<=3)
{
printf("0\n");
continue;
}
int count=0;
for(int i=0; i<=n-2; i++)
{
for(int j=0; j<=n; j++)b[j]=a[j];
char temp=b[i];
b[i]=b[i+1];
b[i+1]=temp;
count+=isrelate(b,n);
}
if(count!=0)printf("%d\n",count);
else printf("-1\n");
}
return 0;
}
单纯的遍历,但是不知道哪错了
...
登录后发布评论
这个解法不太行
用bfs或者dfs进行搜索
对比结果可以用题解区的代码跑一下