1003.我要通过

来源:互联网 发布:农村淘宝服务站利润表 编辑:程序博客网 时间:2024/05/16 05:13

这里写图片描述
一直都搞错了题目的意思,后来看了网上的解析,才知道原来题目是要aPbTc满足len(a)*len(b)=len(c).

int main(){    int n;    cin >> n;                      //使用cin,首先去掉输入的空格,避免之后判断该情况    while (n--)    {        string s;        cin >> s;        size_t p = s.find_first_not_of("A");        if ((p == string::npos) || (s[p] != 'P'))                  //首先找到第一个不是A的位置,如果不是P或者没找到,不通过        {            cout << "NO" << endl;            continue;        }        size_t t = s.find_first_not_of("A", p + 1);        if ((t == string::npos) || (t == p + 1) || (s[t] != 'T')) //找出P后下一个不是A的位置,如果不是T或者就是P下一位或者没找到,不通过        {            cout << "NO" << endl;            continue;        }        size_t n = s.find_first_not_of("A", t + 1);                       if (n != string::npos)                                       //找出T后下一个不是A的位置,如果没找到,不通过        {            cout << "NO" << endl;            continue;        }        if ((s.length() - t - 1) == p * (t - p - 1))               //如果不满足len(a)*len(b)=len(c),不通过        {            cout << "YES" << endl;        }        else        {            cout << "NO" << endl;        }    }    return 0;}
0 0
原创粉丝点击