有几个PAT

来源:互联网 发布:线切割输入编程步骤 编辑:程序博客网 时间:2024/06/11 19:57
字符串APPAPT中包含了两个单词“PAT”,其中第一个PAT是第2位(P),第4位(A),第6位(T);第二个PAT是第3位(P),第4位(A),第6位(T)。

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


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

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

思路:
动态规划的思路,统计pat需要pa的数量,统计pa需要p的数量,一步一步判断即可。

java代码:
package test;import java.util.*;public class Main8 {public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s=sc.nextLine();//读入一行string System.out.println(PatNum(s));}private static int PatNum(String s) {int pCount=0;int paCount=0;int patCount=0;for(int i=0;i<s.length();i++) {if('P'==s.charAt(i)) {pCount++;}else if('A'==s.charAt(i)) {paCount+=pCount;}else {patCount+=paCount;}}return patCount;}}