该题目的目标是通过模拟大雁的叫声来找出所需的最少大雁数量.观察到字符串的长度只有1000(最多200*'quack'),考虑暴力模拟,枚举第几只大雁,用指针遍历叫声顺带vis数组标记(一只大雁可能循环的quackquack....)已经被使用过,所以尽可能的打上凑更多的完整叫声直到无法完整的凑出'quack'输出答案即可
#include <bits/stdc++.h>
using namespace std;
#define N 100005
char dx[5]={'q','u','a','c','k'};
int vis[N];
一群大雁往南飞,给定一个字符串记录地面上的游客听到的大雁叫声,请给出叫声最少由几只大雁发出。
具体的:
1.大雁发出的完整叫声为”quack“,因为有多只大雁同一时间嘎嘎作响,所以字符串中可能会混合多个”quack”。
2.大雁会依次完整发出”quack”,即字符串中’q’ ,‘u’, ‘a’, ‘c’, ‘k’ 这5个字母按顺序完整存在才能计数为一只大雁。如果不完整或者没有按顺序则不予计数。
3.如果字符串不是由’q’, ‘u’, ‘a’, ‘c’, ‘k’ 字符组合而成,或者没有找到一只大雁,请返回−1。
一个字符串,包含大雁quack的叫声。1≤字符串长度≤1000,字符串中的字符只有’q’, ‘u’, ‘a’, ‘c’, ‘k’。
大雁的数量
输入
qucakquack
输出
1
输入
qaauucqckk
输出
-1
输入
quacqkuac
输出
1
输入
qququaauqccauqkkcauqqkcauuqkcaaukccakkck
输出
5