Longest Nice Substring
EasyHash TableStringDivide and ConquerBit ManipulationSliding Window
Solution
export function longestNiceSubstring(s: string): string {
if (s.length < 2) {
return '';
}
const set = new Set(s);
for (let i = 0; i < s.length; i++) {
const char = s[i];
if (!set.has(char.toLowerCase()) || !set.has(char.toUpperCase())) {
const leftSubstring = longestNiceSubstring(s.substring(0, i));
const rightSubstring = longestNiceSubstring(s.substring(i + 1));
return leftSubstring >= rightSubstring ? leftSubstring : rightSubstring;
}
}
return s;
}