分析

讨论 和其它三个字母出现次数的大小就可以了。有且只有两种状态。 的情况。

代码

#include<bits/stdc++.h>
using namespace std;
const int N = 1e7+100;
char ch[N];
int ans;
void solve(int a,int b,int c,int d) {
    int Min = min(b,min(c,d));
    if(!a||!Min) return;
    if(a * 2 <= Min) ans = a * 2;
    else ans = Min;
}
int k,i,n,g,M;
int main() {
    cin >> M >> ch + 1;
    for(int num = 1;num <= M;num++) {
        if(ch[num] == 'k') k++;
        if(ch[num] == 'i') i++;
        if(ch[num] == 'n') n++;
        if(ch[num] == 'g') g++; 
    }
    solve(k,i,n,g);
    cout << ans << endl;
}