问题 A: Talkweb 水题

问题 A: Talkweb

[提交][状态][讨论版]
题目描述

      众所周知,拓维信息系统股份有限公司(Talkweb)赞助了2016年度湖南科技大学大学生计算机程序设计竞赛。宣传部的小明同学负责校赛的宣传,要用到广告字母牌。

好消息是宣传部已经有一些现成的字母牌了,坏消息是所有的字母牌都堆在一起,小明不知道能够拼成多少个Talkweb?要求区分大小写,每个牌子只能用一次。
示例字符串中的每一个字符表示一个字母广告牌,
字符串“wbeabTalk”,能够拼出 1个Talkweb。
字符串“abtalkweb”,能够拼出 0个Talkweb。
输入

 一个仅由52个英文字母组成的字符串,长度不超过1000。
输出

 仅输出一个整数,即能够拼出Talkweb的数目。
样例输入
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
样例输出
2
提示

大水题,今天特地把这比赛代码补上,一查这题当时居然用map,这题居然就搬出map,当时真是脑抽风了.下面给的是比赛时的代码

#include <iostream>
#include <cstdio>
#include <map>
#include <cstring>
#include <cstdlib>
#include <algorithm>
using namespace std;
char A[1020];
int Handle(int len)
{
    int MAX = 0;
    map<char,int> MAP;
    map<char,int>::iterator it;
    for(int i=0;i<len;i++)
    {
        it=MAP.find(A[i]);
        if(it==MAP.end()) MAP[A[i]]=1;
        else (*it).second++;
    }
    it = MAP.find('T'); MAX = (*it).second;
    it = MAP.find('a'); MAX = min((*it).second,MAX);
    it = MAP.find('l'); MAX = min((*it).second,MAX);
    it = MAP.find('k'); MAX = min((*it).second,MAX);
    it = MAP.find('w'); MAX = min((*it).second,MAX);
    it = MAP.find('e'); MAX = min((*it).second,MAX);
    it = MAP.find('b'); MAX = min((*it).second,MAX);
    return MAX;

}
int main()
{
   // freopen("D:\\test.txt","r",stdin);
   gets(A);
   printf("%d\n",Handle(strlen(A)));
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值