Files
cpp-flashcards/org/study_deck_02/dsa/greedy/0678-valid-parenthesis-string.org
2026-06-08 11:38:09 +08:00

1.3 KiB

TODO 0678. Valid Parenthesis String   medium

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:

Input: s = "()"
Output: true

Example 2:

Input: s = "(*)"
Output: true

Example 3:

Input: s = "(*))"
Output: true

Constraints:

  • 1 <= s.length <= 100
  • s[i] is '(', ')' or '*'.

TODO Approach

Write your approach here.

TODO Python

class Solution:
    def checkValidString(self, s: str) -> bool:

TODO C++

class Solution {
public:
    bool checkValidString(string s) {
        
    }
};