给出一个字符串S,其中满足S的每一个字符都是数字字符,你要删除S的连续一段字符(也可以删除0个字符),使得剩下的字符依次连接起来的字符串是“2020”,可以做到吗?如果可以做到输出“YES”,否则输出“NO”。
输入格式
第一行,一个整数G,表示有G组测试测试。1<=G<=10。
每组测试格式如下:
第一行,一个整数n,表示字符串S的长度。1<=n<=200。
第二行,字符串S。
输出格式
共G行,每行一个字符串,“YES”或“NO”,双引号不用输出。
输入/输出例子1
输入:
5
8
20192020
8
22019020
4
2020
5
20002
6
729040
输出:
YES
YES
YES
NO
NO
样例解释
无
#include<bits/stdc++.h>
using namespace std;
int G,n,len;
string s;
bool cheak(string s)
{
len=s.size();
if(s[0]=='2'&&s[len-3]=='0'&&s[len-2]=='2'&&s[len-1]=='0')return true;
if(s[0]=='2'&&s[1]=='0'&&s[len-2]=='2'&&s[len-1]=='0')return true;
if(s[0]=='2'&&s[1]=='0'&&s[2]=='2'&&s[len-1]=='0')return true;
if(s[len-4]=='2'&&s[len-3]=='0'&&s[len-2]=='2'&&s[len-1]=='0')return true;
if(s[0]=='2'&&s[1]=='0'&&s[2]=='2'&&s[3]=='0')return true;
return false;
}
int main()
{
cin>>G;
while(G--)
{
cin>>n;
cin>>s;
if(cheak(s)==true)cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}