题目链接:http://codeforces.com/contest/538/problem/A
题目大意:给一个字符串,求切下一段后剩余部分是否等于“CODEFORCES”,能输出“YES”,不能输出"NO"。常见的字符串处理问题。用substr()函数处理即可。
代码如下:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
using namespace std;
int main()
{
int n,p=0;
string a;
cin>>a;
n=a.length();
for(int i=0;i<n;i++)
{
for(int len1=1;len1<n-i+1;len1++)
{
string b=a.substr(i,len1);//b为切后的前一段,c为切后的后一段
for(int j=i+len1;j<n;j++)
{
for(int len2=1;len2<n-j+1;len2++)
{
string c=a.substr(j,len2);
if(b+c=="CODEFORCES"&&(i==0&&j+len2==10||j+len2==n&&i==n-10||i==0&&j+len2==n))
{//因为只能切掉一段,所以剩余两段连着在串首或者连着在串尾或者分别在两端
p=1;
printf("YES\n");
break;
}
}
if(p)
break;
}
if(p)break;
}
if(p)break;
}
if(!p)
printf("NO\n");
return 0;
}