您的位置:首页 > 其它

CodeForces 550A Two Substrings(模拟)

2015-06-27 11:40 393 查看
【题目链接】click here~~

【题目大意】:

You are given string s. Your task is to determine if the given string s contains two non-overlapping substrings “AB” and “BA” (the substrings can go in any order).

Input

The only line of input contains a string s of length between 1 and 105 consisting of uppercase Latin letters.

Output

Print “YES” (without the quotes), if string s contains two non-overlapping substrings “AB” and “BA”, and “NO” otherwise.

Sample test(s)

input

ABA

output

NO

input

BACFAB

output

YES

给出一行字符,判断是否出现两个不重叠的字串“AB”和“BA”

代码:

/*
str.find()函数
返回str在字符串中第一次出现的位置(从index开始查找)。如果没找到则返回string::npos, 
返回str在字符串中第一次出现的位置(从index开始查找,长度为length)。如果没找到就返回string::npos, 
返回字符ch在字符串中第一次出现的位置(从index开始查找)。如果没找到就返回string::npos 
*/
#include <bits/stdc++.h>
using namespace std;
string str;
int main()
{
    cin>>str;
    int len=str.size();
    if(len<=3) puts("NO");
    else
    {
        int a=str.find("AB");
        int b=str.find("BA",a+2);
        int c=str.find("BA");
        int d=str.find("AB",c+2);
        if(a!=-1&&b!=-1||c!=-1&&d!=-1) puts("YES");
        else puts("NO");
    }
    return 0;
}
/*
strstr函数:查找字符串第一次出现的位置
*/
#include<bits/stdc++.h>
using namespace std;
char str[200000],*p;
int main()
{
    cin>>str;
    if((p=strstr(str,"AB")) && (strstr(p+2,"BA")))puts("YES");
    else if((p=strstr(str,"BA")) && strstr(p+2,"AB"))puts("YES");
    else puts("NO");
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: