Leetcode 1189. “气球” 的最大数量
Published on 2022-05-16 15:49 in 分类: C/C++ with 萧海~
分类: C/C++

Leetcode 1189. “气球” 的最大数量

    在这里插入图片描述
    给你一个字符串 text,你需要使用 text 中的字母来拼凑尽可能多的单词 "balloon"(气球)。

    字符串 text 中的每个字母最多只能被使用一次。请你返回最多可以拼凑出多少个单词 "balloon"。

    示例 1:

    在这里插入图片描述

    输入:text = "nlaebolko"
    输出:1

    示例 2:
    在这里插入图片描述

    输入:text = "loonbalxballpoon"
    输出:2

    示例 3:

    输入:text = "leetcode"
    输出:0

    提示:

    • 1 <= text.length <= 10^4
    • text 全部由小写英文字母组成

    Code:

    class Solution {
    public:
    typedef pair<char, int> PAIR;
    struct CmpByValue {
    bool operator()(const PAIR& lhs, const PAIR& rhs) {
    return lhs.second < rhs.second;
    }
    };
    int maxNumberOfBalloons(string text) {
    //balloon
    map<char,int>mymap;
    string temp="";
    for(int i=0;i<text.size();i++)
    {
    if(text[i]=='b'||
    text[i]=='a'||
    text[i]=='l'||
    text[i]=='o'||
    text[i]=='n')
    {
    mymap[text[i]]++;
    }
    }
    //把map中元素转存到vector中
    vector<PAIR> name_score_vec(mymap.begin(), mymap.end());
    //对vector排序
    sort(name_score_vec.begin(), name_score_vec.end(), CmpByValue());
    int minnun=0;
    if(name_score_vec.size()!=5)
    return 0;
    for (int i = 0; i != name_score_vec.size(); ++i) {
    if(name_score_vec[i].first=='a'||
    name_score_vec[i].first=='b'||
    name_score_vec[i].first=='n')
    {
    minnun=name_score_vec[i].second;
    break;
    }
    }
    int minnun2=0;
    for (int i = 0; i != name_score_vec.size(); ++i) {
    if(name_score_vec[i].first=='l'||
    name_score_vec[i].first=='o')
    {
    minnun2=name_score_vec[i].second;
    break;
    }
    }
    for (int i = 0; i != name_score_vec.size(); ++i) {
    if(name_score_vec[i].first=='a'||
    name_score_vec[i].first=='b'||
    name_score_vec[i].first=='n')
    {
    minnun=min(minnun,name_score_vec[i].second);
    }
    }
    for (int i = 0; i != name_score_vec.size(); ++i) {
    if(name_score_vec[i].first=='l'||
    name_score_vec[i].first=='o')
    {
    minnun2=min(minnun2,name_score_vec[i].second);
    }
    }
    while (1) {
    if((minnun*2)>minnun2){
    minnun--;
    }
    else
    return minnun;
    }
    return 0;
    }
    };
    posted @   萧海~  阅读(30)  评论(0编辑  收藏  举报
    相关博文:
    阅读排行:
    · winform 绘制太阳,地球,月球 运作规律
    · AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
    · 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
    · 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
    · 上周热点回顾(3.3-3.9)
    历史上的今天:
    2021-05-16 简单好用的Log类, easylogging++
    2021-05-16 static的应用和作用
    2021-05-16 TCP长连接和Keepalive详解
    点击右上角即可分享
    微信分享提示
    电磁波切换