zoukankan      html  css  js  c++  java
  • 【PAT乙级 】1003. 我要通过!

    题目地址:https://www.nowcoder.com/pat/2/problem/4069

    题目如下

    题目描述
    “答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于PAT的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。
    得到“答案正确”的条件是:

    1. 字符串中必须仅有P, A, T这三种字符,不可以包含其它字符;
    2. 任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;
    3. 如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中 a, b, c 均或者是空字符串,或者是仅由字母 A 组成的字符串。
      现在就请你为PAT写一个自动裁判程序,判定哪些字符串是可以获得“答案正确”的。
      输入描述:
      每个测试输入包含1个测试用例。第1行给出一个自然数n (<10),是需要检测的字符串个数。接下来每个字符串占一行,字符串长度不超过100,且不包含空格。

    输出描述:
    每个字符串的检测结果占一行,如果该字符串可以获得“答案正确”,则输出YES,否则输出NO。
    输入例子:
    8
    PAT
    PAAT
    AAPATAA
    AAPAATAAAA
    xPATx
    PT
    Whatever
    APAAATAA
    输出例子:
    YES
    YES
    YES
    YES
    NO
    NO
    NO
    NO

    其实这是道推导的题。
    首先 条件1可以推导得到,必须要有 P A T 三个数字。
    条件2 可以得到, xPATx PAT三个字母前后都可以有相同数量的A
    条件3 可以得到,是在条件2的基础上使得 aPbATca 成立。由条件2我们可以知道,首尾xPATx的x是一样的,类似aPbATc,假设此处b=1,那么式子就等于aPATc,而a=c(xPATx)。
    我们继续根据条件3往下迭代。在aPbATc中,若使b=1A,那么aPbATac就相当于aPAATac。而由前面知 a=c,因此这个式子也可以写成 aPAATaa。我们再继续往下推一步。假设b=2A,那么aPAAATac,由于上一个推导式我们已知aPAATaa是正确的,这里令a=a,aa=c,则该式子就是 aPAATc,所以aPAAATac是正确的。
    由以上可知,经过推导,开头的A的个数*中间A的个数就是结尾A的个数。

    代码:

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        int n;
        int p=0,t=0;
        string str;
        cin>>n;
        for(int i=0;i<n;i++){
            cin>>str;
            map<char,int>m;
            for(int j=0;j<str.size();j++){
                m[str[j]]++;
                if(str[j] == 'P')p = j;
                if(str[j] == 'T')t = j;
            }
            if(m['P']==1&&m['T']==1&&m['A']!=0&&m.size()==3&&p*(t-p-1)==str.length()-t-1)
                cout<<"YES"<<endl;
            else cout<<"NO"<<endl;
        }
    
    }
    
    你好啊,谢谢你来看我。
  • 相关阅读:
    Java8系列之重新认识HashMap(转)
    kafka 消费者和生产者测试类
    zookeeper配置
    JNLP应用程序无法打开的解决办法
    Functional Programming 资料收集
    Python的问题解决: IOError: [Errno 32] Broken pipe
    python的subprocess的简单使用和注意事项
    Python tricks(7) -- new-style class的__slots__属性
    Python tricks(6) -- python代码执行的效率
    Python tricks(5) -- string和integer的comparison操作
  • 原文地址:https://www.cnblogs.com/sitr/p/For_the_LichiKing.html
Copyright © 2011-2022 走看看