bestcode ——连续字符统计
2016-10-01 20:58
190 查看
Find Q
Accepts: 599
Submissions: 778
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 262144/131072 K (Java/Others)
Problem Description
Byteasar is addicted to the English letter 'q'. Now he comes across a string SS consisting
of lowercase English letters.
He wants to find all the continous substrings of SS,
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\leq
T\leq10)T(1≤T≤10),
denoting the number of test cases.
In each test case, there is a string SS,
it is guaranteed that SS only
contains lowercase letters and the length of SS is
no more than 100000100000.
Output
For each test case, print a line with an integer, denoting the number of continous substrings of SS,
which only contain the letter 'q'.
Sample Input
2 qoder quailtyqqq
Sample Output
1 7
Statistic | Submit | Clarifications | Back
BestCoder Contest System 2.0
统计连续的q,然后加上(n-1)*n/2
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <climits>
#include <cstring>
#include <string>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <vector>
#include <list>
#define rep(i,m,n) for(i=m;i<=n;i++)
#define rsp(it,s) for(set<int>::iterator it=s.begin();it!=s.end();it++)
#define mod 2009
#define INF 9999999999999
#define vi vector<int>
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define pi acos(-1.0)
#define pii pair<int,int>
#define Lson L, mid, rt<<1
#define Rson mid+1, R, rt<<1|1
const int maxn=5e2+10;
using namespace std;
typedef long long ll;
ll gcd(ll p,ll q){return q==0?p:gcd(q,p%q);}
ll qpow(ll p,ll q){ll f=1;while(q){if(q&1)f=f*p;p=p*p;q>>=1;}return f;}
ll my_min(ll x,ll y){ return x>y?y:x;};
int main()
{
int t;
char str[100005];
while(scanf("%d",&t)!=EOF)
{
for(int i=1;i<=t;i++)
{
unsigned long long re = 0;
memset(str,0,sizeof(str));
scanf("%s",str);
int len = strlen(str);
int k;
for(int j=0;j<len;j++)
{
if(str[j]=='q')
{
k=0;
while(str[j]=='q')
{
k++;
j++;
}
unsigned long long t1 = 0;
for(int l=1;l<=k;l++)
{
t1 +=l;
}
re+=t1;
j--;
}
}
printf("%llu\n",re);
}
}
return 0;
}
相关文章推荐
- 习题 8.16 输入一个字符串,内有数字和非数字字符,将其中连续的数字作为一个整数,依次存放到一数组a中。统计共有多少个整数,并输出这些数。
- 连续字符统计(如AABBBCDD, A2B3C1D2)
- 10月 24 日 c语言 从键盘上连续输入字符,并统计其中大写字母的个数,直到输入“换行”字符时结束。
- 输入一个字符串内有数字和非数字字符,将连续的数字作为一个整数,存到数组a中,统计整数的个数,并输出这些数
- p279_1016在字符串有数字与非字符,找出连续的数字作为整数存放并统计个数。方法简洁,不同于答案书
- p279_10162 答案书版:在字符串有数字与非字符,找出连续的数字作为整数存放并统计个数
- String类练习讲解-统计字符串中出现连续字符的次数
- 统计字符串中连续出现某些字符的最大子串长度
- 输入一个字符串,内有数字和非数字字符,将其中连续的数字作为一个整数,依次存放到一数组a中。统计共有多少个整数,并输出这些数。
- 统计字符串中连续数字字符组成的整数的个数
- 连续字符统计(如 AABCCCD:A2B1C3D1)
- 连续输入多个字符时统计字符重复次数的一般方法
- 杭电 1020【统计连续相同的字符】
- [面试题] 查找最长不含相同字符的连续子串
- MySql中关于某列中相同数值连续出现次数的统计
- 通过读取硬盘中的文档,来统计该文档中指定字符的个数,并对指定字符进行替换
- 分割字符串(有一个字符串,其中包含中文字符、英文字符和数字字符, * 请统计和打印出各个字符的个数)
- 第十六周上机任务---字符串中字符统计任务 ①。。。
- IDF实验室:初探乾坤--简单编程-字符统计
- 在mysql中根据日期来统计出用户行为属性的连续天数