• PAT (Basic Level) Practice 1040 有几个PAT


    个人练习


     

     

    字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位(P),第 4 位(A),第 6 位(T);第二个 PAT 是第 3 位(P),第 4 位(A),第 6 位(T)。

     

    现给定字符串,问一共可以形成多少个 PAT

     

    输入格式:

     

    输入只有一行,包含一个字符串,长度不超过1,只包含 PAT 三种字母。

     

    输出格式:

     

    在一行中输出给定字符串中包含多少个 PAT。由于结果可能比较大,只输出对 1000000007 取余数的结果。

     

    输入样例:

     

    APPAPT
    

     

    输出样例:

     

    2

    #include<iostream>
    #include<string.h>
    
    using namespace std;
    
    int main(){
      string num;
      long t=0,at=0,pat=0;
      cin>>num;
      long len=num.length();
      for(int i=len-1;i>=0;i--)
      {
        if(num[i]=='T')
        {
          t++;
        }else if(num[i]=='A')  //每次发现‘A’则倍加
        {
          at+=t;
        }else if(num[i]=='P')  //每次发现‘P’则倍加
        {
          pat+=at;
        }
      }
      cout<<pat%1000000007;
      return 0;
    }



     

  • 相关阅读:
    Jenkins安装以及邮件配置
    day12_框架一tools.py代码
    codeforces 1428F
    codeforces 1428G Lucky Numbers (贪心+dp)
    单调队列优化多重背包
    bzoj1190 梦幻岛宝珠
    codeforces 1421 D
    bzoj 2287消失之物 (退背包)
    codeforces 553A
    组合计数小结
  • 原文地址:https://www.cnblogs.com/JaminLin/p/9534060.html
Copyright © 2020-2023  润新知