1. 程式人生 > >PAT 1040 有幾個PAT

PAT 1040 有幾個PAT

result har ret blank return http pri lan main

https://pintia.cn/problem-sets/994805260223102976/problems/994805282389999616

字符串 APPAPT 中包含了兩個單詞 PAT,其中第一個 PAT 是第 2 位(P),第 4 位(A),第 6 位(T);第二個 PAT 是第 3 位(P),第 4 位(A),第 6 位(T)。

現給定字符串,問一共可以形成多少個 PAT

輸入格式:

輸入只有一行,包含一個字符串,長度不超過1,只包含 PAT 三種字母。

輸出格式:

在一行中輸出給定字符串中包含多少個 PAT。由於結果可能比較大,只輸出對 1000000007 取余數的結果。

輸入樣例:

APPAPT

輸出樣例:

2

代碼:

#include <bits/stdc++.h>
using namespace std;

const int maxn = 1e5 + 10;
char s[maxn];
int t = 0, p = 0;
long long result;

int main() {
    scanf("%s", s);
    int len = strlen(s);

    for(int i = 0; i < len; i ++) {
        if(s[i] == ‘T‘)
            t ++;
    }

    for(int i = 0; i < len; i ++) {
        if(s[i] == ‘P‘) p ++;
        if(s[i] == ‘T‘) t --;
        if(s[i] == ‘A‘) result = (result + (t * p) % 1000000007) % 1000000007;
    }

    printf("%d\n", result);
    return 0;
}

  

PAT 1040 有幾個PAT