CF538A 题解

· · 题解

首先观察样例,s 的长度不超过 100,可以使用暴力。

因为是要删除一个连续的字串,使得 s 中只剩下了 \texttt{CODEFORCES}(10 个字符),所以我们要删去 |s|-10 个字符。

考虑删除从 i 开始到 i+|s|-9 的字符,即为保留 0 到 i-1 和 i+|s|-10 到 |s|-1 的字符。

注:上文中下标从 0 开始。

AC code:

#include<bits/stdc++.h>
using namespace std;
string s,ss="CODEFORCES";
int main(){
    cin>>s;
    int l=s.size();
    if(l<10)return cout<<"NO",0;//特判
    for(int i=0;i<l-10;i++){
        string k="";
        for(int j=0;j<i-1;j++)k+=s[j];//模拟保留的过程
        for(int j=i+l-11;j<l;j++)k+=s[j];//模拟保留的过程
        if(k==ss)return cout<<"YES",0;//符合就输出、
    }return cout<<"NO",0;
}