【模拟】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];
    }
};
相关推荐
边跑边掩护1 小时前
LeetCode 648 单词替换题解
算法·leetcode·职场和发展
愚润求学2 小时前
【递归、搜索与回溯】专题一:递归(二)
c++·笔记·算法·leetcode
wang__123005 小时前
力扣2094题解
算法·leetcode·职场和发展
小雅痞6 小时前
[Java][Leetcode middle] 55. 跳跃游戏
java·leetcode
元亓亓亓7 小时前
LeetCode热题100--206.反转链表--简单
算法·leetcode·链表
边跑边掩护7 小时前
LeetCode 373 查找和最小的 K 对数字题解
leetcode
爱coding的橙子13 小时前
每日算法刷题 Day3 5.11:leetcode数组2道题,用时1h(有点慢)
算法·leetcode
Dream it possible!17 小时前
LeetCode 热题 100_只出现一次的数字(96_136_简单_C++)(哈希表;哈希集合;排序+遍历;位运算)
c++·leetcode·位运算·哈希表·哈希集合
MarkHard1231 天前
Leetcode (力扣)做题记录 hot100(34,215,912,121)
算法·leetcode·职场和发展
Kidddddult1 天前
力扣刷题Day 46:搜索二维矩阵 II(240)
算法·leetcode·力扣