HDU 5904 BestCoder Round的解题思路有哪些?

2026-06-10 03:411阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计496个文字,预计阅读时间需要2分钟。

HDU 5904 BestCoder Round的解题思路有哪些?

题目:寻找字符串中'q'的出现次数时间限制:2000/1000 MS(Java/其他)内存限制:262144/131072 K(Java/其他)总提交次数:636通过提交次数:314问题描述:Byteasar沉迷于英语字母'q'。现在他遇到了一个字符串S。请计算字符串S中字母'q'出现的次数。


Find Q

Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 262144/131072 K (Java/Others)
Total Submission(s): 636Accepted Submission(s): 314

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'.

Sample Input

2
qoder
quailtyqqq

Sample Output

1
7

Source

​​BestCoder Round #88 ​​

Recommend

wange2014|We have carefully selected several similar problems for you:​​5932​​​​​5931​​​​​5930​​​​​5929​​​​​5928​​

题解:找出S的所有仅包含字母'q'的连续子串的数目。

就是cnt*(cnt+1)/2 累加呗...

AC代码:

HDU 5904 BestCoder Round的解题思路有哪些?

#include<stdio.h>
#include<string.h>
const int N = 100000+20;
char S[N];
int main(){
int t;
scanf("%d",&t);
while(t--)
{
scanf("%s",S);
long long cnt=0,ans=0;
int L=strlen(S);
for(int i=0;i<=L;i++)
{
if(S[i]=='q')
{
cnt++;
}
else if(S[i]!='q'&&S[i-1]=='q')
{
ans+=cnt*(cnt+1)/2;
cnt=0;
}
}
printf("%lld\n",ans);
}
return 0;
}


本文共计496个文字,预计阅读时间需要2分钟。

HDU 5904 BestCoder Round的解题思路有哪些?

题目:寻找字符串中'q'的出现次数时间限制:2000/1000 MS(Java/其他)内存限制:262144/131072 K(Java/其他)总提交次数:636通过提交次数:314问题描述:Byteasar沉迷于英语字母'q'。现在他遇到了一个字符串S。请计算字符串S中字母'q'出现的次数。


Find Q

Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 262144/131072 K (Java/Others)
Total Submission(s): 636Accepted Submission(s): 314

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'.

Sample Input

2
qoder
quailtyqqq

Sample Output

1
7

Source

​​BestCoder Round #88 ​​

Recommend

wange2014|We have carefully selected several similar problems for you:​​5932​​​​​5931​​​​​5930​​​​​5929​​​​​5928​​

题解:找出S的所有仅包含字母'q'的连续子串的数目。

就是cnt*(cnt+1)/2 累加呗...

AC代码:

HDU 5904 BestCoder Round的解题思路有哪些?

#include<stdio.h>
#include<string.h>
const int N = 100000+20;
char S[N];
int main(){
int t;
scanf("%d",&t);
while(t--)
{
scanf("%s",S);
long long cnt=0,ans=0;
int L=strlen(S);
for(int i=0;i<=L;i++)
{
if(S[i]=='q')
{
cnt++;
}
else if(S[i]!='q'&&S[i-1]=='q')
{
ans+=cnt*(cnt+1)/2;
cnt=0;
}
}
printf("%lld\n",ans);
}
return 0;
}