Gotta Catch Em' All!
Posted WhiteLearner
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
Bulbbasaur
1
F
0
aBddulbasaurrgndgbualdBdsagaurrgndbb
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; }
以上是关于Gotta Catch Em' All!的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces --- 982C Cut 'em all! DFS加贪心
Codeforces 982 C. Cut 'em all!(dfs)