模块六:模拟——1419.数青蛙

题目描述

题目链接:1419.数青蛙
在这里插入图片描述

算法原理

解法(模拟 + 分情况讨论)

模拟⻘蛙的叫声。
当遇到 ‘r’ ‘o’ ‘a’ ‘k’ 这四个字符的时候,我们要去看看每⼀个字符对应的前驱字符,有没有⻘蛙叫出来。如果有⻘蛙叫出来,那就让这个⻘蛙接下来喊出来这个字符;如果没有,直接返回 -1 ;
当遇到 ‘c’ 这个字符的时候,我们去看看 ‘k’ 这个字符有没有⻘蛙叫出来。如果有,就让这个⻘蛙继续去喊 ‘c’ 这个字符;如果没有的话,就重新搞⼀个⻘蛙。

代码实现

class Solution {
public:
    int minNumberOfFrogs(string croakOfFrogs) {
        const string croak = "croak";
        int n = croak.size();
        vector<int> hash(n);//用数组来模拟哈希表

        unordered_map<char,int> index;//[x,x所对应的下标]
        for(int i = 0;i < n;i++){
            index[croak[i]] = i;
        }

        for(auto ch : croakOfFrogs){
            if(ch == 'c'){
                if(hash[n - 1] != 0){
                    hash[n - 1]--;
                }
                hash[0]++;
            }
            else{
                int i = index[ch];
                if(hash[i - 1] == 0)return -1;
                hash[i - 1]--;
                hash[i]++;
            }
        }
        for(int i = 0;i < n - 1;i++){
            if(hash[i] != 0)return -1;
        }
        return hash[n - 1];
    }
};

相关推荐

  1. math模块篇(

    2024-05-02 07:24:03       15 阅读
  2. os模块篇(

    2024-05-02 07:24:03       12 阅读
  3. 设计模式(模板方法模式)

    2024-05-02 07:24:03       31 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-02 07:24:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-02 07:24:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-02 07:24:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-02 07:24:03       18 阅读

热门阅读

  1. 机器学习项目部署:从模型到生产环境

    2024-05-02 07:24:03       11 阅读
  2. 【设计模式】之单例模式

    2024-05-02 07:24:03       12 阅读
  3. PostgreSQL的pg_config工具

    2024-05-02 07:24:03       9 阅读
  4. 关于NPM的Registry(npm源)

    2024-05-02 07:24:03       12 阅读
  5. MATLAB初学者入门(29)—— 傅里叶分析

    2024-05-02 07:24:03       10 阅读
  6. layui 表格添加 checkbox 开关

    2024-05-02 07:24:03       10 阅读
  7. R和Python市场篮分析算法及行为分析模型

    2024-05-02 07:24:03       9 阅读