码迷,mamicode.com
首页 > 其他好文 > 详细

ACM!

时间:2015-05-07 08:56:53      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:

1686: ACM!

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 586  Solved: 291

SubmitStatusWeb Board

Description

    wx在圣诞节前夜收到了一份神秘的礼物,据不可靠消息称是一名神秘的女子所送~!wx打开礼物一看,是一盒装满小写字母形状的饼干。于是wx突发奇想,他想要知道用这一盒饼干最多能拼出多少个“acm”单词。

技术分享

    注意,一个“acm”单词,需要形状分别为‘a’、“c”、“m”的饼干各一个,并且每个饼干只能使用一次。

Input

    输入包含一个仅含有小写字母的字符串,且字符串的长度不超过50。每个字母代表每个饼干的形状。

Output

    输出一个整数,代表最多能够拼出“acm”这个单词的个数。

Sample Input

ohmygodacmissoeasytoac

Sample Output

2

HINT

Source

code_farmer

水题练习。。如果一个字符串里没有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;
}

ACM!

标签:

原文地址:http://blog.csdn.net/zuguodexiaoguoabc/article/details/45541321

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!