Description
Submission
class Solution { public: int findTheLongestSubstring(string s) { vector<int> pos(1<<5, -2); unordered_map<char, int> index{{'a', 0}, {'e', 1}, {'i', 2}, {'o', 3}, {'u', 4}}; pos[0] = -1; int state = 0, ret = 0; for(int i = 0; i < s.length(); ++i) { if(index.count(s[i])) { state = state ^ (1 << index[s[i]]); } if(pos[state] == -2) pos[state] = i; ret = max(ret, i - pos[state]); } return ret; } };