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);
}
}
目录
相关文章
|
9月前
|
XML Java 数据格式
常用的xpath
常用的xpath
85 0
|
2月前
|
机器学习/深度学习 存储 自然语言处理
SeACo-Paraformer
【6月更文挑战第14天】
80 6
|
2月前
PAT 1001 和 1002 A+B问题
PAT 1001 和 1002 A+B问题
|
3月前
|
SQL 分布式计算 数据库
ApacheHudi使用问题汇总(二)
ApacheHudi使用问题汇总(二)
76 0
|
开发框架 移动开发 安全
mPaaS
mPaaS是阿里云提供的一款移动应用开发平台,支持开发iOS和Android平台的原生应用程序和H5应用程序。mPaaS提供了丰富的移动应用开发服务和工具,包括移动应用开发框架、云端API、移动支付、推送服务、移动安全等,可以帮助开发者快速构建高质量的移动应用程序。
674 0
|
供应链 机器人
什么是RPA?
什么是RPA?
337 0
Pangram
Pangram
112 0
Pangram
|
机器人
你真的了解RPA吗?
RPA(Robotic Process Automation),译为机器人流程自动化,也可称为数字化劳动力(Digital Labor),是一种智能化软件,它可以像人类一样,通过简单的编程来完成设定好的任务流程,优化整个企业的基础流程作业,降低成本、提高效率。
2108 0