Problem Description
Byteasar is addicted to the English letter ‘q’. Now he comes across a string S consisting of lowercase English letters.
He wants to find all the continous substrings of S, which only contain the letter ‘q’. But this string is really really long, so could you please write a program to help him?
Input
The first line of the input contains an integer T(1≤T≤10), denoting the number of test cases.
In each test case, there is a string S, it is guaranteed that S only contains lowercase letters and the length of S is no more than 100000.
Output
For each test case, print a line with an integer, denoting the number of continous substrings of S, which only contain the letter ‘q’.
Solution
没啥好说的,统计连续的q的数量计算一下就好
比赛时忘记初始化QAQ
#include<stdio.h>
long long ans,q,T;
int main()
{
scanf("%I64d\n",&T);
while (T--)
{
ans=q=0;
for (char ch=getchar();ch!='\n';ch=getchar()) if (ch=='q') q++;
else ans+=(q+1)*q>>1,q=0;
printf("%I64d\n",ans+=(q+1)*q>>1);
}
}
本程序解决了一个特定字符串处理问题:给定一个由小写英文字母组成的字符串,统计其中仅包含字母'q'的所有连续子串的数量。输入包括测试案例数量及每个案例的字符串,输出为每组测试数据中符合条件的子串数量。
2840

被折叠的 条评论
为什么被折叠?



