我刚看到此题时,看到样例,当时就慌了,想了很久但一想红题不会是这样的难度再仔细地又看了几遍题目,发现了这个规律:
只有这几种情况
我就以长度为8来举例,并且不管长度为什么,都符合这个规律
1.2020……
2.202……0
3.20……20
4.2……020
5.……2020
6.…2020…
所以,我们只需用几个if对字符串进行判断即可
AC CODE
#include<bits/stdc++.h>
using namespace std;
string s;
int t,n;//几组数据和字符串长度
int main(){
cin>>t;//t组数据
while(t--){
cin>>n>>s;//输入长度和字符串
if(s[0]=='2'&&s[1]=='0'&&s[2]=='2'&&s[3]=='0'){
cout<<"YES"<<endl;continue;
}
if(s[0]=='2'&&s[1]=='0'&&s[2]=='2'&&s[n-1]=='0'){
cout<<"YES"<<endl;continue;
}
if(s[0]=='2'&&s[1]=='0'&&s[n-2]=='2'&&s[n-1]=='0'){
cout<<"YES"<<endl;continue;
}
if(s[0]=='2'&&s[n-3]=='0'&&s[n-2]=='2'&&s[n-1]=='0'){
cout<<"YES"<<endl;continue;
}
if(s[n-4]=='2'&&s[n-3]=='0'&&s[n-2]=='2'&&s[n-1]=='0'){
cout<<"YES"<<endl;continue;
}//具体思路请看上方
cout<<"NO"<<endl;//如果都不满足就输出NO
}
return 0;//完结撒花
}
求赞