1040 有幾個PAT(25 分)

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

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

輸入格式:

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

輸出格式:

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

輸入樣例:

APPAPT

輸出樣例:

2

 

 

#include<iostream>
#include<algorithm>
#include<string>
using namespace std;

long long a[100000],t[100000];
int main(){	
		string s;
		long long sump=0,suma=0,y=0,sum=0;
		cin>>s;
		long long size=s.length();
		for(int i=0;i<size;++i){
			if(s[i]=='P')
				++sump;
			if(sump>0&&s[i]=='A'){
				suma+=sump;
			}
			if(s[i]=='T'){				
				sum+=suma;
				//cout<<"sump="<<sump<<" suma="<<suma<<" sum="<<sum<<endl;
				sum%=1000000007;
			}
		}
		printf("%lld",sum);


}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章