测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A25166. wolf

填空题 容易

题目描述

wolf

题目描述:给定一个仅包含小写字母的字符串 S,需按以下规则从中挑选字符组成 "wolf":

(1)每次挑选 4 个字符,且字符相对顺序保持不变;

(2)这 4 个字符从左到右恰好组成字符串 "wolf";

(3)字符串 S 中的每个字符最多被挑选一次。

请计算字符串 S 中最多能挑选出多少组 "wolf"。

例 1:S = "wolwfolf";通过下图的挑选方式,最多能挑出 2 组 "wolf";

例 2:S = "awboclffowolwof";通过下图的挑选方式,最多能挑出 2 组 "wolf"。

输入描述:

输入一个仅包含小写字母的字符串 S(4≤S 的长度≤1000)。

输出描述:

输出一个整数,表示最多能挑选出 "wolf" 的组数。

样例输入:

wolwfolf

样例输出:

2

参考答案

#include <iostream> #include <cstring> using namespace std; int main() { string s, s1 = "wolf"; cin >> s; int len = s.length(), cnt = 0; int pos = 0; while(true) { int p = s.find('w', pos);//找到w的位置 if(p==-1) break; pos = p + 1; //更新下次搜索位置 int cur = 1; //匹配字符数量 for(int j=p; j<len; j++) { //往后寻找wolf字符 if(s[j] == s1[cur]) { cur++; } if(cur == 4) { cnt++; break; } } } cout << cnt; return 0; }
上一题 下一题