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

【题解】最多次数

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

【题目描述】

小蓝有一个字符串 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;
	
}


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

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

    分享给朋友:

    相关文章

    【题解】直方图

    直方图(histogram.cpp)【题目描述】给定一个非负整数数组,统计里面每一个数的出现次数。我们只统计到数组里面最大的数。假设Fmax(Fmax<10000)是数组里最大的数,那么我们只统...

    猴子吃桃

    【题目描述】猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第N天早上想再吃时...

    【题解】钟神赛车

    【题目描述】钟神近来编码劳累,想骑车风光一番,于是找某君骑自行车比赛。已知某君和钟神的每辆自行车的速度,钟神赢一场得50银两银子,输一场赔50银两,平局不挣也不赔。钟神可以随意安排高中低档自行车的出场...

    求正整数2和n之间的完全数

    【题目描述】求正整数2和n之间的完全数(一行一个数)。完全数:因子之和等于它本身的自然数,如6=1+2+3【输入描述】输入n【输出描述】一行一个数,按由小到大的顺序。【输入样例】7【输出样例】6#in...

    【题解】完全背包问题

    【题目描述】设有n种物品,每种物品有一个重量及一个价值。但每种物品的数量是无限的,同时有一个背包,最大载重量为M,今从n种物品中选取若干件(同一种物品可以多次选取),使其重量的和小于等于M,而价值的和...

    【题解】找零钱—动态规划

    给定一些人民币的面额,数量不限,要求找出金额为m元且人民币张数最少的方案。这个问题既可以是一个贪心问题也可以是一个动态规划的问题。对于现行的人民币面额:1、2、5、10、20、50、100,我们找任何...