第一题:
int main() {
    string s;
    cin >> s;
    unordered_map<char, int> m;
    unordered_map<char, bool> flag;
    int sum = 0, cur = 0;
    vector<int> res;
    for (int i = 0; i < s.size(); i++)
        m[s[i]]++;
    for (int i = 0; i < s.size(); i++) {
        if (flag.find(s[i]) == flag.end()) {
            sum += m[s[i]];
            flag[s[i]] = true;
        }
        cur++;
        if (cur == sum) {
            res.push_back(cur);
            cur = 0;
            sum = 0;
        }
    }
    for (int i = 0; i < res.size(); i++) {
        if (i != res.size() - 1)
            cout << res[i] << ',';
        else
            cout << res[i] << endl;
    }
    system("pause");
    return 0;
}