c++ Solution || Heavy one
\tint longestBeautifulSubstring(string word) {\n        int n = word.length();\n        if(n == 0){\n            return 0;\n        }\n        \n        unorder
\tint longestBeautifulSubstring(string word) {\n        int n = word.length();\n        if(n == 0){\n            return 0;\n        }\n        \n        unordered_map<char, int> mp;\n        mp[\'a\'] = 0;\n        mp[\'e\'] = 1;\n        mp[\'i\'] = 2;\n        mp[\'o\'] = 3;\n        mp[\'u\'] = 4;\n        \n        int ans = 0;\n        int count = 1;\n        unordered_set<char> visited;\n        visited.insert(word[0]);\n        \n        for(int i=1; i<n; i++){\n            if((mp[word[i]] - mp[word[i-1]]) >= 0 && (mp[word[i]] - mp[word[i-1]]) <= 1){\n                visited.insert(word[i]);\n                count++;\n                bool flag = true;\n                \n                if(word[i] == \'u\'){\n                    for(auto itr: mp){\n                        if(visited.find(itr.first) == visited.end()){\n                            flag = false;\n                            break;\n                        }\n                    }\n\n                    if(flag){\n                        ans = max(ans, count);\n                    }\n                }\n                    \n            }\n            else{\n                visited.clear();\n                visited.insert(word[i]);\n                count = 1;\n            }\n        }\n        \n        return ans;\n    }
['C']