Longest Nice Substring

EasyStringsdivide and conquer

Solve this the way you would in the interview: out loud, on a timer, with an AI interviewer asking follow-ups while you code. You get a scored report at the end.

Practice this as a mock interviewFree to start, no account needed

Problem

A string is **nice** if, for every letter it contains, it contains that letter in both lowercase and uppercase. For example "aAbB" is nice, but "aAb" is not because it has b without B. Given a string s, return its longest substring that is nice. If several nice substrings share the maximum length, return the one that starts earliest. If no non-empty substring is nice, return the empty string "".

Examples

Input: s = "YazaAay"
Output: "aAa"
"aAa" contains only a and A. No longer substring is nice.
Input: s = "Bb"
Output: "Bb"
The whole string is nice.
Input: s = "dDzeE"
Output: "dD"
"dD" and "eE" are both length 2; "dD" starts first.

Constraints

  • 1 <= s.length <= 100
  • `s` contains only uppercase and lowercase English letters

What the interviewer grades

A correct solution is one of five scores. The report also grades problem understanding (did you clarify inputs and edge cases before coding), problem solving, communication while you work, code quality, and testing. See a sample report, or read up on the pattern in the lessons.

More divide and conquer problems