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);
}
}
目录
相关文章
|
7月前
|
前端开发 JavaScript 搜索推荐
解密: SPA 与 MPA
单页面应用(SPA)是一种Web应用架构,其中所有的内容和功能都包含在单一的HTML页面中。这种应用在用户与界面交互时不会进行全页刷新,而是通过动态更新页面上的局部内容来提供流畅的用户体验。多页面应用(MPA)是一种传统的Web应用程序架构,它由多个页面组成,每个页面都是一个独立的文档,通常包含自己的一套JavaScript、CSS等资源。当用户在应用中导航时,浏览器会重新加载整个页面和相关的资源。
|
3月前
|
API Android开发 开发者
NavigableListDetailPaneScaffold
【9月更文挑战第12天】
33 5
|
6月前
PAT乙级 1016 部分A+B
PAT乙级 1016 部分A+B
|
7月前
|
SQL 分布式计算 HIVE
ApacheHudi使用问题汇总(一)
ApacheHudi使用问题汇总(一)
59 0
|
7月前
|
缓存 Java API
深入理解JPA
深入理解JPA
209 0
|
XML 数据格式
|
Windows
cclientX,pageX,screenX等详解
clientX 观点:鼠标相对于WINDOWS的坐标。 这里这个WINDOWS是指我们能看见的浏览器大小。所以不可能超过显示器的大小,如 screen.width,screen.height
122 0
|
云栖大会
apaas 、ipaas
apaas 、ipaas自制脑图
197 0
apaas 、ipaas
|
Web App开发
XPathHelper使用
XPathHelper使用
163 0