PAT 1040 有几个PAT (25分)(Java)

题目描述

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

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

输入格式:

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

输出格式:

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

输入样例:

APPAPT

输出样例:

2

代码

package com.hbut.pat;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Pat_1040 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        char[] c = br.readLine().toCharArray();
        long t = 0,at = 0, pat = 0;
        for (int i = c.length - 1; i>= 0; i--) {
            if (c[i] == 'T')
                t++;
            else if (c[i] == 'A')
                at = (t + at) % 1000000007 ;
            else
                pat = (pat + at) % 1000000007;
        }
        System.out.print(pat % 1000000007 );
    }
}
全部评论

相关推荐

01-19 12:48
门头沟学院 C++
只想搞钱的鸽子很喜欢...:混账是很多的,还有那些在自己风华正茂的年纪说风凉话讥讽那些下岗前员工的。这些人都是现在职场环境这么烂的帮凶
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务