1040 有几个PAT (25 分
生活随笔
收集整理的這篇文章主要介紹了
1040 有几个PAT (25 分
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
字符串?APPAPT?中包含了兩個單詞?PAT,其中第一個?PAT?是第 2 位(P),第 4 位(A),第 6 位(T);第二個?PAT?是第 3 位(P),第 4 位(A),第 6 位(T)。
現給定字符串,問一共可以形成多少個?PAT?
輸入格式:
輸入只有一行,包含一個字符串,長度不超過1,只包含?P、A、T?三種字母。
輸出格式:
在一行中輸出給定字符串中包含多少個?PAT。由于結果可能比較大,只輸出對 1000000007 取余數的結果。
輸入樣例:
APPAPT輸出樣例:
2 #include<cstdio> #include<cstring> const int maxn = 100010; const int MOD = 1000000007; char str[maxn]; int leftNumP[maxn] = {0};int main(){scanf("%s",str);int len = strlen(str);for(int i = 0; i < len; i++){if(i > 0){leftNumP[i] = leftNumP[i - 1];}if(str[i] == 'P'){leftNumP[i]++;}}int ans = 0,rightNumT = 0;for(int i = len; i >= 0; i--){if(str[i] == 'T') rightNumT++;if(str[i] == 'A') ans = (ans + rightNumT * leftNumP[i]) % MOD;}printf("%d",ans);return 0; }?
轉載于:https://www.cnblogs.com/wanghao-boke/p/10337722.html
總結
以上是生活随笔為你收集整理的1040 有几个PAT (25 分的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 供精试管婴儿有精源吗
- 下一篇: 早泄是不孕不育吗