Gotta Catch Em' All!

Gotta Catch Em' All!

Bash wants to become a Pokemon master one day. Although he liked a lot of Pokemon, he has always been fascinated by Bulbasaur the most. Soon, things started getting serious and his fascination turned into an obsession. Since he is too young to go out and catch Bulbasaur, he came up with his own way of catching a Bulbasaur.

Each day, he takes the front page of the newspaper. He cuts out the letters one at a time, from anywhere on the front page of the newspaper to form the word "Bulbasaur"(without quotes) and sticks it on his wall. Bash is very particular about case — the first letter of "Bulbasaur" must be upper case and the rest must be lower case. By doing this he thinks he has caught one Bulbasaur. He then repeats this step on the left over part of the newspaper. He keeps doing this until it is not possible to form the word "Bulbasaur" from the newspaper.

Given the text on the front page of the newspaper, can you tell how many Bulbasaurs he will catch today?

Note: uppercase and lowercase letters are considered different.

Input

Input contains a single line containing a string s (1  ≤  |s|  ≤  105) — the text on the front page of the newspaper without spaces and punctuation marks. |s| is the length of the string s.

The string s contains lowercase and uppercase English letters, i.e. .

Output

Output a single integer, the answer to the problem.

Example

Input
Bulbbasaur
Output
1
Input
F
Output
0
Input
aBddulbasaurrgndgbualdBdsagaurrgndbb
Output
2


一道很水的题,但是处理不好就很容易WA。。WA了6次。。。泪奔。。。。

题意:给你一个字符串,让你判断里面有几个“Bulbasaur”,不要求顺序。
这道题网上的解好像都是用一个数组存储每个字母出现的次数,然后出现最低的次数就是答案了。
我用的方法是对字符串排序,并且对“Bulbasaur”排序,然后一个for循环找出有几个。
代码如下:
#include<iostream>
#include<cstdio>
#include<string.h>
#include<algorithm>
using namespace std;
char v[100000];
int ans = 0;
int main()
{
    scanf("%s", v);
    int n = strlen(v);
    sort(v, v + n);
    char v1[12] = "Bulbasaur";
    sort(v1, v1 + 9);
    v1[9] = '\0';
    int j = 0;
    for (int i = 0; i < n;i++)
    {
        if (j == 8 && v[i] == v1[j])//这里要判断。。没处理好让我WA了3次
        {
            ans++;
            v[i] = '0';//这里又让我WA了3次。。。
            j = 0;
            i = 0;
        }
        if (v[i] == v1[j])
        {
            v[i] = '0';
            j++;
        }
    }
    printf("%d\n", ans);
    return 0;
}
 
     
 
 
     
 
    

转载于:https://www.cnblogs.com/Anony-WhiteLearner/p/6284542.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值