PAT 乙级 1040 有几个PAT (25分)

1040 有几个PAT (25分)

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

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

输入格式:

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

输出格式:

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

输入样例:

APPAPT

输出样例:

2

作者: CAO, Peng
单位: Google
时间限制: 150 ms
内存限制: 64 MB
代码长度限制: 16 KB

#include <iostream>
using namespace std;
int main(){
    string input;
    cin>>input;
    long long ans = 0,number_p = 0,number_t = 0;
    for (int i = 0; i < input.length(); ++i)
        if(input[i] == 'T')
            number_t++;
    for (int i = 0; i < input.length(); ++i) {
        if(input[i] == 'T')
            number_t--;
        if(input[i] == 'P')
            number_p ++;
        if(input[i] == 'A'){
            ans += number_p * number_t;
            ans %= 1000000007;
        }
    }
    cout<<ans;
    return 0;
}
发布了95 篇原创文章 · 获赞 50 · 访问量 8141

猜你喜欢

转载自blog.csdn.net/qq_43422111/article/details/104054495