【模拟】Leetcode 数青蛙

题目讲解

1419. 数青蛙


算法讲解

cpp 复制代码
class Solution {
public:
    int minNumberOfFrogs(string croakOfFrogs) {
        string target = "croak";
        int n = target.size();

        //保存target每个字符的位置index
        unordered_map<char, int>index;
        for(int i = 0; i < n; i++)index[target[i]] = i;

        //按照target的顺序制作Hash
        vector<int>Hash(n); 

        for(int i = 0; i < croakOfFrogs.size(); i++)
        {
            if(croakOfFrogs[i] == 'c')
            {
                if(Hash[n-1] != 0)Hash[n-1]--;
                Hash[0]++;
            }
            else
            {
                //获取当前 croak 字母的下标
                int char_index = index[croakOfFrogs[i]];
                //判断前一个字符是否在Hash中出现 
                if(Hash[char_index - 1] == 0)return -1;
                Hash[char_index - 1]--; Hash[char_index]++;
            }

           
        }
         //怕出现这种croakcro
        for(int i = 0; i < n-1; i++)
        {
            if(Hash[i] != 0)return -1;
        }
        return Hash[n-1];
    }
};
相关推荐
Kuo-Teng40 分钟前
Leetcode438. 找到字符串中所有字母异位词
java·算法·leetcode
墨染点香2 小时前
LeetCode 刷题【138. 随机链表的复制】
算法·leetcode·链表
Shinom1ya_8 小时前
算法 day 41
数据结构·算法·leetcode
一匹电信狗9 小时前
【C++】红黑树详解(2w字详解)
服务器·c++·算法·leetcode·小程序·stl·visual studio
第七序章10 小时前
【C + +】C++11 (下) | 类新功能 + STL 变化 + 包装器全解析
c语言·数据结构·c++·人工智能·哈希算法·1024程序员节
仰泳的熊猫10 小时前
LeetCode:72. 超级次方
数据结构·c++·算法·leetcode
_dindong12 小时前
牛客101:递归/回溯
数据结构·c++·笔记·学习·算法·leetcode·深度优先
刃神太酷啦12 小时前
力扣校招算法通关:双指针技巧全场景拆解 —— 从数组操作到环检测的高效解题范式
java·c语言·数据结构·c++·算法·leetcode·职场和发展
Shinom1ya_13 小时前
算法 day 42
数据结构·算法·leetcode
Dylan的码园14 小时前
以二叉树问题为基础的递归调试学习(上)
java·学习·算法·leetcode·r-tree