二了,一开始就把题意看错,打代码的时候把变量看错
WA无数发
学长,我不是故意刷水题的,但是刷水题好爽啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!!!!!
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std;
char s[25000010];
int a[25000001];char temps[25000010];
int main()
{
int t;int len;int i;
scanf("%d",&t);
while(t--)
{
memset(a,0,sizeof(a));
scanf("%d",&len);
getchar();
for(i=0;i<len;i++)
scanf("%c",&s[i]);
int ok=0;a[0]=1;
temps[0]=s[0];
for(i=1;i<len;i++)//去掉临近且相同的并且a数组记录其连续出现多少次
{
if(s[i]==s[i-1])
a[ok]++;
else
{
ok+=1;
a[ok]=1;
temps[ok]=s[i];
}
}
if(ok<2)
{
printf("NO\n");
continue;
}
bool flag=true;
for(i=0;i<=ok-2;i++)//一开始把这里写成len-2了真是二了
{
if(temps[i]==temps[i+1]-1&&temps[i+1]==temps[i+2]-1)//判断是否连续
{
if(a[i+1]<=a[i]&&a[i+1]<=a[i+2])//判断是否相同
{
flag=false;
break;
}
}
}
if(flag)printf("NO\n");
else printf("YES\n");
}
return 0;
}