本文主要是介绍【模拟】Leetcode 数青蛙,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目讲解
1419. 数青蛙
算法讲解
class Solution {
public:int minNumberOfFrogs(string croakOfFrogs) {string target = "croak";int n = target.size();//保存target每个字符的位置indexunordered_map<char, int>index;for(int i = 0; i < n; i++)index[target[i]] = i;//按照target的顺序制作Hashvector<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]++;}}//怕出现这种croakcrofor(int i = 0; i < n-1; i++){if(Hash[i] != 0)return -1;}return Hash[n-1];}
};
这篇关于【模拟】Leetcode 数青蛙的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!