题目描述
蒟蒻的辞树又被吊打了嘤嘤嘤。留下了属于弱者的眼泪QAQAQAQAQAAQAAQA 现在我
们定义辞树的悲伤值F 。F的值为主串中子序列为"QAQ"的个数。注意字母“QAQ”不一定是
连续的,但是字母的顺序应该是准确的。
输入
输入一个整数T(0 T 20),代表有T组数据。每组数据会给出一个字符串S,长度为len,0 <
len 1000000
输出
根据每组的字符串,输出辞树的悲伤值F,每组数据换行。
输入样例
2
QAQAQYSYIOIWIN
QAQQ
输出样例
4
2
#include<stdio.h> //这题用long long
#include<iostream> //Q A Q,以A为主轴,先算出所有Q,再遍历找A,用A前面的Q数*后面的Q数,
#include<algorithm> //所有相加;
#include<string>
using namespace std;
int main()
{
long long n,m;
cin>>n;
while(n--)
{
string s;
long long l=0,k=0,res=0,suma=0,i;
cin>>s;
m=s.length();
for( i=0;i<m;i++)
{
if(s[i]=='Q')
suma++;
}
for( i=0;i<m;i++)
{
if(s[i]=='Q')
k++;
if(s[i]=='A')
{
res=res+k*(suma-k);
}
}
cout<<res<<endl;
}
}