CF1462B Last Year's Substring

本题解与Luogu同步

题解

这题说实话不难,重点是能不能想到这个点。

首先,我们想一想,要想直接把一个字符串去掉一段连续的字符串后只剩2020,那么,应该只有以下几种情况:

  1. \(2020……\)

  2. \(202……0\)

  3. \(20……20\)

  4. \(2……020\)

  5. \(……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;
}
posted @ 2021-01-09 12:18  W-RB  阅读(93)  评论(0编辑  收藏  举报