CF1462B Last Year's Substring
本题解与Luogu同步
题解
这题说实话不难,重点是能不能想到这个点。
首先,我们想一想,要想直接把一个字符串去掉一段连续的字符串后只剩2020,那么,应该只有以下几种情况:
-
\(2020……\)
-
\(202……0\)
-
\(20……20\)
-
\(2……020\)
-
\(……2020\)
所以我们就直接进行特判,然后输出就可以了
Code
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
char s[207];
int t, n;
int main()
{
scanf("%d", &t);
while(t--)
{
scanf("%d", &n);
cin >> s;
if(s[0] == '2' && s[1] == '0' && s[2] == '2' && s[3] == '0')
{
printf("YES\n");
continue;
}
if(s[n - 4] == '2' && s[n - 3] == '0' && s[n - 2] == '2' && s[n - 1] == '0')
{
printf("YES\n");
continue;
}
if(s[0] == '2' && s[n - 3] == '0' && s[n - 2] == '2' && s[n - 1] == '0')
{
printf("YES\n");
continue;
}
if(s[0] == '2' && s[1] == '0' && s[n - 2] == '2' && s[n - 1] == '0')
{
printf("YES\n");
continue;
}
if(s[0] == '2' && s[1] == '0' && s[2] == '2' && s[n - 1] == '0')
{
printf("YES\n");
continue;
}
printf("NO\n");
}
return 0;
}
本文作者:W-RB,本文遵循 CC BY-NC 协议,转载请注明原文链接:https://www.cnblogs.com/w-rb/p/14254568.html和作者W-RB,且仅允许在非商业情况下使用