zoukankan      html  css  js  c++  java
  • PAT 1040

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

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

    输入格式:

    输入只有一行,包含一个字符串,长度不超过105,只包含P、A、T三种字母。

    输出格式:

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

    输入样例:
    APPAPT
    输出样例:
    2

    #include <iostream>
    #include <string.h>
    #include <algorithm>
    #include <math.h>
    #include <stdlib.h>
    #include <stdio.h>
    
    
    using namespace std;
    #define MAX 100000
    const long long int  MOD=1e9+7;
    char a[MAX+5];
    int b[MAX+5];//左边有多少个P
    int c[MAX+5];//右边有多少个T
    long long int ans;
    long long int num;
    int main()
    {
        while(scanf("%s",a+1)!=EOF)
        {
            int len=strlen(a+1);
            memset(b,0,sizeof(b));
            memset(c,0,sizeof(c));
            for(int i=1;i<=len;i++)
            {
                if(a[i]=='P')
                    b[i]=b[i-1]+1;
                else
                     b[i]=b[i-1];
            }
            for(int i=len;i>=1;i--)
            {
                 if(a[i]=='T')
                    c[i]=c[i+1]+1;
                else
                    c[i]=c[i+1];
            }
    
            ans=0;
            for(int i=1;i<=len;i++)
            {
                if(a[i]=='A')
                {
                    num=b[i]*c[i];
                    (ans+=num%MOD)%=MOD;
                }
            }
            printf("%d
    ",ans);
        }
    }
  • 相关阅读:
    前端学习
    python 镜像
    os模块常用操作
    pandas 缺失值与空值处理
    pandas 根据列的值选取所有行
    pandas模块
    编码与解码
    正则表达式
    pthon之字典的遍历
    python作用域
  • 原文地址:https://www.cnblogs.com/dacc123/p/8228759.html
Copyright © 2011-2022 走看看