元音删除

问题描述

现在有一个长度为 nn 的字符串,都有小写字母组成。
现在要将所有相连的元音只保留第一个,并将其他元音删除

输出删除完之后的字符串

输入格式

第一行一个整数 nn , 0n1060\le n\le10^6
接下来一行表示字符串

输出格式

输出一行,一个字符出

样例输入

11
aeioubaeiou

样例输出

aba
#include <bits/stdc++.h>
using namespace std;

//unordered_set<char> yuan_yin = {'a', 'e', 'i', 'o', 'u'};
inline bool check(const char& c) {
    //124ms
    //return yuan_yin.find(c) != yuan_yin.end();
    //74ms
    return c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u';
}

int main() {
    int n;
    bool show = true;
    char c;
    cin >> n;
    for (int i = 0; i < n; ++i) {
        scanf(" %c", &c);
        if (check(c)) {
            if (show) {
                printf("%c", c);
                show = false;
            }
        } else {
            printf("%c", c);
            show = true;
        }
    }
    return 0;
}