PAT有几个pat

简介: 字符串APPAPT中包含了两个单词“PAT”,其中第一个PAT是第2位§,第4位(A),第6位(T);第二个PAT是第3位§,第4位(A),第6位(T)。现给定字符串,问一共可以形成多少个PAT?

题目描述



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


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


输入描述:


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


输出描述:


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


输入例子:


APPAPT


输出例子:

2


刚开始想用动态规划,但是使用起来却复杂了,看了推荐答案后,自愧不如。核心求pat的组成方式是叠加的,所以每遇到T的时候,pat都要增加一次,然而增加的次数却是pa的组成总次数。


然而每次遇到a。pa的组合总次数就要加一次。增加的次数为到当前位置P的总次数。很巧妙的动态规划。


代码如下:(仅限牛客ac)


import java.util.Scanner;
public class pat30 {
  public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    String str=sc.next();
    char c[]=str.toCharArray();
    long p=0,pa=0,pat=0;
    for(int i=0;i<c.length;i++)
    {
       if(c[i]=='P') {
              p++;
          }else if(c[i]=='A') {
              pa+=p;
          }else {
              pat+=pa%1000000007;
          }
    }
    System.out.println(pat%1000000007);
}
}
目录
打赏
0
0
0
0
17
分享
相关文章
Pacman
Pacman
76 3
parameterType是必须写的吗?
xml中没有配置parameterType,但是这是正确的,因为mybatis能自动识别,但返回值类型不能不写,因为mybatis需要将获得结果封装到相应的类中,查询的字段与类的属性需要一致。
464 0
parameterType是必须写的吗?
apaas 、ipaas
apaas 、ipaas自制脑图
215 0
apaas 、ipaas
PAT条条大路通罗马
Indeed there are many different tourist routes from our city to Rome. You are supposed to find your clients the route with the least cost while gaining the most happiness.
141 0
XPATH
学习XPATH。
112 0
PalDB 介绍
开篇  PalDB在我的工作中被大面积使用,场景我就不描述了,这里我只想直白的说一句,这个系列的PalDB博文绝对是国内最详细的,如果有兴趣非常建议收藏了好好看看。
1116 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等