1371 Posted on 2026-01-13 In 解題紀錄 , LeetCode Views: 題目:https://leetcode.com/problems/find-the-longest-substring-containing-vowels-in-even-counts/description/ 12345678910111213141516171819202122232425262728293031class Solution {public: int findTheLongestSubstring(string s) { int mp[32]; // uoiea = 00000 -> 11111 => 0~31 for(int i=0; i<32; ++i){ mp[i] = -2; // don't exists } mp[0] = -1; // initially 00000 int ans = 0; int sum = 0; for(int i=0, m; i<s.length(); ++i){ m = move(s[i]); if(m != -1) sum ^= 1 << m; if(mp[sum] != -2) ans = max(ans, i - mp[sum]); else mp[sum] = i; } return ans; } int move(char c){ switch(c){ case 'a': return 0; case 'e': return 1; case 'i': return 2; case 'o': return 3; case 'u': return 4; default: return -1; } }};