1686: ACM!
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 586 Solved: 291
Submit Status Web Board
Description
wx在圣诞节前夜收到了一份神秘的礼物,据不可靠消息称是一名神秘的女子所送~!wx打开礼物一看,是一盒装满小写字母形状的饼干。于是wx突发奇想,他想要知道用这一盒饼干最多能拼出多少个“acm”单词。
注意,一个“acm”单词,需要形状分别为‘a’、“c”、“m”的饼干各一个,并且每个饼干只能使用一次。
Input
输入包含一个仅含有小写字母的字符串,且字符串的长度不超过50。每个字母代表每个饼干的形状。
Output
输出一个整数,代表最多能够拼出“acm”这个单词的个数。
Sample Input
ohmygodacmissoeasytoac
Sample Output
2
HINT
Source
水题练习。。如果一个字符串里没有a或者c 或者m,就输出0,如果都有的话,判断a出现,c出现,m出现的次数,这三个次数的最小值。
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
string s;
int i,lens,pos1,pos2,pos3,count[3];
cin>>s;
lens=s.size();
sort(s.begin(),s.end());
pos1=s.find("a");
pos2=s.find("c");
pos3=s.find("m");
if(pos1==-1 ||pos2==-1 ||pos3==-1)
{
cout<<"0"<<endl;
}
else
{
count[0]=1; count[1]=1; count[2]=1;
for(i=pos1;i<lens-1;i++)
{
if(s[i]==s[i+1])
count[0]++;
else
break;
}
for(i=pos2;i<lens-1;i++)
{
if(s[i]==s[i+1])
count[1]++;
else
break;
}
for(i=pos3;i<lens-1;i++)
{
if(s[i]==s[i+1])
count[2]++;
else
break;
}
sort(count,count+3);
cout<<count[0]<<endl;
}
return 0;
}