1040. 有几个PAT(25)
字符串APPAPT中包含了两个单词“PAT”,其中第一个PAT是第2位(P),第4位(A),第6位(T);第二个PAT是第3位(P),第4位(A),第6位(T)。
现给定字符串,问一共可以形成多少个PAT?
输入格式:
输入只有一行,包含一个字符串,长度不超过105,只包含P、A、T三种字母。
输出格式:
在一行中输出给定字符串中包含多少个PAT。由于结果可能比较大,只输出对1000000007取余数的结果。
输入样例:
APPAPT
输出样例:
2
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include<string.h> 4 5 char str[100005]; 6 int main() 7 { 8 int numT=0,numP=0,numPAT=0; //T的个数,P的个数,PAT的个数 9 int i; 10 gets(str); 11 for( i=0; str[i]!='\0'; i++) 12 { 13 if( str[i]=='T') 14 numT++; //先循环一遍找到T的个数 15 } 16 for( i=0; str[i]!='\0'; i++) 17 { 18 if( str[i]=='T') 19 numT--; 20 else if(str[i]=='P') 21 numP++; 22 else //遇到一个A,它所组成的PAT个数为它前面的P的个数乘它后面的T的个数 23 numPAT =( numPAT+ numP*numT%1000000007)%1000000007; 24 } 25 printf("%d",numPAT); 26 return 0; 27 }
在这个国度中,必须不停地奔跑,才能使你保持在原地。如果想要寻求突破,就要以两倍现在速度奔跑!