java.lang.Object
g0601_0700.s0678_valid_parenthesis_string.Solution

public class Solution extends Object
678 - Valid Parenthesis String.<p>Medium</p> <p>Given a string <code>s</code> containing only three types of characters: <code>'('</code>, <code>')'</code> and <code>'*'</code>, return <code>true</code> <em>if</em> <code>s</code> <em>is <strong>valid</strong></em>.</p> <p>The following rules define a <strong>valid</strong> string:</p> <ul> <li>Any left parenthesis <code>'('</code> must have a corresponding right parenthesis <code>')'</code>.</li> <li>Any right parenthesis <code>')'</code> must have a corresponding left parenthesis <code>'('</code>.</li> <li>Left parenthesis <code>'('</code> must go before the corresponding right parenthesis <code>')'</code>.</li> <li><code>'*'</code> could be treated as a single right parenthesis <code>')'</code> or a single left parenthesis <code>'('</code> or an empty string <code>&quot;&quot;</code>.</li> </ul> <p><strong>Example 1:</strong></p> <p><strong>Input:</strong> s = &ldquo;()&rdquo;</p> <p><strong>Output:</strong> true</p> <p><strong>Example 2:</strong></p> <p><strong>Input:</strong> s = &ldquo;(*)&rdquo;</p> <p><strong>Output:</strong> true</p> <p><strong>Example 3:</strong></p> <p><strong>Input:</strong> s = &ldquo;(*))&rdquo;</p> <p><strong>Output:</strong> true</p> <p><strong>Constraints:</strong></p> <ul> <li><code>1 <= s.length <= 100</code></li> <li><code>s[i]</code> is <code>'('</code>, <code>')'</code> or <code>'*'</code>.</li> </ul>
  • Constructor Details

    • Solution

      public Solution()
  • Method Details

    • checkValidString

      public boolean checkValidString(String s)