您的位置:首页 > 其它

PAT乙级(Basic Level)真题 >有几个PAT

2017-04-10 17:56 316 查看
题目描述

字符串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

代码如下:

import java.util.*;
public class PAT1030 {

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
String s = in.next();
int len = s.length();
//int count=0;
int p=0,pa=0,pat=0;
for(int i = 0;i<len;i++){
char tmp = s.charAt(i);
if(tmp=='P'){
p++;
}else if(tmp=='A'){
pa = pa+p;
pa = pa%1000000007;
}else{
pat = pa +pat;
pat = pat%1000000007;
}
}
System.out.println(pat);
}

}


说明 暴力搜索会使得时间超出限制。故只能使用动态规划

参考牛客网一位用户
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: