题目
找最长的一串字字串
里面的元音都出现偶数次
思路
用bitset<5>记录当前状态
用map记录那种状态之后往回找有没有一样的
一样的就代表出现偶数次
后来才发现原来map会把
所有都是0的bitset的key
直接默认值 = 0
所以还要自己弄成-1
有够靠北
```cpp
class Solution {
public:
int findTheLongestSubstring(string s)
{
int n = s.size();
unordered_map<bitset<5>,int> save;
bitset<5> now = {0};
save[now] = -1;
int res = 0;
for(int i = 0 ; i < n ; i ++)
{
if(s[i] == 'a')now[0] = 1-now[0];
if(s[i] == 'e')now[1] = 1-now[1];
if(s[i] == 'i')now[2] = 1-now[2];
if(s[i] == 'o')now[3] = 1-now[3];
if(s[i] == 'u')now[4] = 1-now[4];
if(save.find(now) != save.end())
{
res = max(res , i - save[now]);
}
else save[now] = i;
// for(int j = 0 ; j < 5 ; j ++)
// {
// cout << " " << now[j];
// }
// cout << endl;
}
return res;
}
};
```