题目讲解
1419. 数青蛙
算法讲解
class Solution {
public:
int minNumberOfFrogs(string croakOfFrogs) {
string target = "croak";
int n = target.size();
unordered_map<char, int>index;
for(int i = 0; i < n; i++)index[target[i]] = i;
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
{
int char_index = index[croakOfFrogs[i]];
if(Hash[char_index - 1] == 0)return -1;
Hash[char_index - 1]--; Hash[char_index]++;
}
}
for(int i = 0; i < n-1; i++)
{
if(Hash[i] != 0)return -1;
}
return Hash[n-1];
}
};