Valid Parenthesis String
The string holds only '(', ')' and '*'. A '*' can stand for '(', ')' or nothing. Return True if some choice for every '*' makes the parentheses match up. Example: "(*))" => True, "(*)" => True, ")*(" => False
Valid Parenthesis String is a dynamic programming question: define the state cleanly and the transitions usually follow. Interviewers love it because it reveals your state-and-transition thinking and your edge-case discipline. Once you define the right state, the transitions usually write themselves.

Meet Coco
Coco is an AI study partner, not a person. She listens while you explain your code, asks what a line does and never hands you the fix. Sign in free to type with Coco, up to a daily limit, and to talk with her for one hour. After that, talking comes with the $79 pack. Anyone can open the editor and run their code.