2026-06-01 18:12:40 +08:00
|
|
|
#+ANKI_DECK: study_deck_02
|
2026-06-01 17:12:10 +08:00
|
|
|
* TODO 0678. Valid Parenthesis String :medium:
|
2026-06-01 02:33:30 +08:00
|
|
|
:PROPERTIES:
|
2026-06-01 17:22:07 +08:00
|
|
|
:NEETCODE: [[file:../../roadmap.org::*0678. Valid Parenthesis String][0678. Valid Parenthesis String]]
|
2026-06-01 02:33:30 +08:00
|
|
|
:END:
|
|
|
|
|
|
2026-06-01 17:22:07 +08:00
|
|
|
Given a string ~s~ containing only three types of characters: ~'('~, ~')'~ and ~'*'~, return ~true~ /if/ ~s~ /is *valid*/.
|
|
|
|
|
|
|
|
|
|
The following rules define a *valid* string:
|
|
|
|
|
|
|
|
|
|
- Any left parenthesis ~'('~ must have a corresponding right parenthesis ~')'~.
|
|
|
|
|
|
|
|
|
|
- Any right parenthesis ~')'~ must have a corresponding left parenthesis ~'('~.
|
|
|
|
|
|
|
|
|
|
- Left parenthesis ~'('~ must go before the corresponding right parenthesis ~')'~.
|
|
|
|
|
|
|
|
|
|
- ~'*'~ could be treated as a single right parenthesis ~')'~ or a single left parenthesis ~'('~ or an empty string ~""~.
|
|
|
|
|
|
|
|
|
|
*Example 1:*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#+begin_src
|
|
|
|
|
Input: s = "()"
|
|
|
|
|
Output: true
|
|
|
|
|
#+end_src
|
|
|
|
|
*Example 2:*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#+begin_src
|
|
|
|
|
Input: s = "(*)"
|
|
|
|
|
Output: true
|
|
|
|
|
#+end_src
|
|
|
|
|
*Example 3:*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#+begin_src
|
|
|
|
|
Input: s = "(*))"
|
|
|
|
|
Output: true
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*Constraints:*
|
|
|
|
|
|
|
|
|
|
- ~1 <= s.length <= 100~
|
|
|
|
|
|
|
|
|
|
- ~s[i]~ is ~'('~, ~')'~ or ~'*'~.
|
|
|
|
|
|
2026-06-01 02:39:53 +08:00
|
|
|
** TODO Approach
|
|
|
|
|
Write your approach here.
|
|
|
|
|
|
|
|
|
|
** TODO Python
|
|
|
|
|
#+begin_src python
|
2026-06-01 17:22:07 +08:00
|
|
|
class Solution:
|
|
|
|
|
def checkValidString(self, s: str) -> bool:
|
2026-06-01 02:39:53 +08:00
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
** TODO C++
|
2026-06-01 02:33:30 +08:00
|
|
|
#+begin_src cpp
|
2026-06-01 17:22:07 +08:00
|
|
|
class Solution {
|
|
|
|
|
public:
|
|
|
|
|
bool checkValidString(string s) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
};
|
2026-06-01 02:33:30 +08:00
|
|
|
#+end_src
|