1040. 有幾個PAT(25)



思路:每一個A能組合成PAT的個數等於這個A前面的P的個數乘以這個A後面的T的個數

下面貼代碼:

註釋都寫上來了,大家可以參考參考。

#include<iostream>
using namespace std;

int main(){
	char ch[100000];
	long sum=0,p=0,t=0;
	scanf("%s",ch);
	for(int i=0;ch[i]!='\0';i++){	//求字符串中'T'的個數 
		if(ch[i]=='T')
			t++;
	}
	for(int i=0;ch[i]!='\0';i++){
		if(ch[i]=='P')		//'A'前面的'P' 
			p++;
		if(ch[i]=='T')		//'A'後面的'T' 	
			t--;
		if(ch[i]=='A'){
			sum=(sum+p*t)%1000000007;
		}		
	}	
	cout<<sum;
	return 0;
}



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