当前位置:首页 > 题解目录 > 正文内容

【题解】最多次数

亿万年的星光10个月前 (04-18)题解目录894

【题目描述】

小蓝有一个字符串 s,他特别喜欢由以下三个字符组成的单词:l,q,b,任意顺序都可以,一共有 6 种可能:lqb、lbq、qlb、qbl、blq、bql。

现在他想从 s 中,尽可能切割出多个他喜欢的单词,请问最多能切割出多少个?单词指的是由若干个连续的字符组成的子字符串。

【输入描述】

输入一行包含一个字符串 s。

【输出描述】

输出一行包含一个整数表示答案。

【样例输入】

lqbblqblqlxqb

【样例输出】

3

【数据范围】

对于20%的数据,1<=|s|<=10

对于40%的数据,1<=|s|<=20

对于60%的数据,1<=|s|<=100

对于70%的数据,1<=|s|<=1000

对于80%的数据,1<=|s|<=10000

对于所有数据,1<=|s|<=10^5, s中只包含小写字母



【参考答案】

#include<bits/stdc++.h>//头文件
using namespace std;
string s;
int cnt;
bool f(char a,char b,char c){//判断是否合法
	if(a=='l'&&b=='q'&&c=='b') return true;//合法
	else if(a=='l'&&b=='b'&&c=='q') return true;//合法
	else if(a=='q'&&b=='l'&&c=='b') return true;//合法
	else if(a=='q'&&b=='b'&&c=='l') return true;//合法
	else if(a=='b'&&b=='l'&&c=='q') return true;//合法
	else if(a=='b'&&b=='q'&&c=='l') return true;//合法
	else return false;//不合法
}
int main(){
	cin>>s;//输入
	for(int i=0;i<s.size()-2;i++){//循环判断
		if(f(s[i],s[i+1],s[i+2])){//判断后3位是否合法
			cnt++;//答案加1
			i+=2;//跳过不必循环范围
		}
	}
	cout<<cnt;//输出
	return 0;
	
}


    扫描二维码推送至手机访问。

    版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

    分享给朋友:

    相关文章

    字符串比较

    【题目描述】给出了n(n<=100000)个由数字和字母组成的字符串(长度小于1000),求与给出字符串相同字符串的个数。【输入描述】第一行是一个数n。接下来n行,每行都是一个字符串。接下来一行...

    学生分组

    【题目描述】有N组学生,给出初始时每组中的学生个数,再给出每组学生人数的上界R和下界L(L≤R),每次你可以在某组中选出一个学生把他安排到另外一组中,问最少要多少次才可以使N组学生的人数都在[L,R]...

    【题解】排队买票

    【题目描述】有M个小孩到公园玩,门票是1元。其中N个小孩带的钱为1元,K个小孩带的钱为2元。售票员没有零钱,问这些小孩共有多少种排队方法,使得售票员总能找得开零钱。注意:两个拿一元零钱的小孩,他们的位...

    【题解】2020-T1 优秀的拆分

    【题目描述】一般来说,一个正整数可以拆分成若干个正整数的和。例如,1=1,10=1+2+3+4等。对于正整数n的一种特定拆分,当且仅当在这种拆分下,n被分解为若干个不同的2的正整数次幂。注意,一个数x...

    【题解】苯小猴

    【题目描述】笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!这种方法的具体描述如下:假设maxn是单词中出现次数最...

    【题解】泥泞路(2019青岛市程序设计竞赛)

    【题目描述】大雨过后,从小A的农场到镇上的公路上有一些泥泞路段,为了方便出行,他决定将若干块长度为L的木板可以铺在这些泥泞路段上,问他至少需要多少块木板,才能将所有的泥泞路段覆盖住。【输入】第一行为正...