1040 有幾個PAT(25)(25 分)
阿新 • • 發佈:2019-02-15
這道題關鍵是判斷A的左右有多少P和T將兩邊的個數相乘,開始遍歷陣列得出T的個數之後就從頭開始每遇到T countT就自減1 P就自加1之後遇到A就計算result,將每次的result相加就是結果。
#include<iostream>
#include<string>using namespace std;
int main()
{
string str0;
long long countP, countT, result;
countP = 0;
countT = 0;
result = 0;
cin >> str0;
for (int i = 0; i < str0.length(); i++)
{
if (str0[i] == 'T')
countT++;
}
for (int i = 0; i < str0.length(); i++)
{
if (str0[i] == 'P') countP++;
if (str0[i] == 'T') countT--;
if (str0[i] == 'A')
{
result = result + countP * countT;
}
}
cout << result% 1000000007 <<endl;
return 0;
}