zoukankan      html  css  js  c++  java
  • PAT 有几个PAT

    字符串 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
    a=input()
    countt,countp,count=0,0,0
    for i in a:
        if i=='T':
            countt+=1
    for j in range(len(a)):
        if a[j]=='P':
            countp+=1
        if a[j]=='T':
            countt-=1
        if a[j]=='A':
            count+=countt*countp%1000000007
    print('%d'%(count%1000000007))

    每一个A对应的PAT的数量是它之前的P的数量与它之后的T的数量的乘积,然后把每个A对应的数量加和就是所有的PAT的数量。于是,找A之后T的数量就可以用 T的数量-A之前T的数量 来计算。那么就先遍历字符串,把T的数量统计一下,然后再遍历字符串,遇到T,先前统计的T的数量就 -1

  • 相关阅读:
    Object Files (.obj)
    使用IIS Microsoft的web服务器和ftp服务器
    关于matlab
    char, signed char, unsigned char的区别
    百度面试
    google笔试题_2011
    ioctl 函数与网络接口
    Unity之热更新:(三)XLua
    C#之设计模式:观察者模式
    C#:委托
  • 原文地址:https://www.cnblogs.com/andrew3/p/12741147.html
Copyright © 2011-2022 走看看