mirror of
https://github.com/prdlk/leetcode.git
synced 2026-11-02 13:12:44 +00:00
54 lines
1.0 KiB
Plaintext
54 lines
1.0 KiB
Plaintext
---
|
|||
|
|
title: '20. Valid Parentheses'
|
||
|
|
description: Given a string s containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid
|
||
|
|
sidebar:
|
||
|
|
label: 'Valid Parentheses'
|
||
|
|
badge: 'Easy'
|
||
|
|
---
|
||
|
|
|
||
|
|
<Badge variant="accent">Stack</Badge>
|
||
|
|
|
||
|
|
### Example 1:
|
||
|
|
- Input: `s = "()"`
|
||
|
|
- Output: `true`
|
||
|
|
|
||
|
|
### Example 2:
|
||
|
|
- Input: `s = "()[]{}"`
|
||
|
|
- Output: `true`
|
||
|
|
|
||
|
|
### Example 3:
|
||
|
|
- Input: `s = "(]"`
|
||
|
|
- Output: `false`
|
||
|
|
|
||
|
|
### Example 4:
|
||
|
|
- Input: `s = "([])"`
|
||
|
|
- Output: `true`
|
||
|
|
|
||
|
|
### Example 5:
|
||
|
|
- Input: `s = "([)]"`
|
||
|
|
- Output: `false`
|
||
|
|
|
||
|
|
### Constraints:
|
||
|
|
|
||
|
|
- `1 <= s.length <= 10^4`
|
||
|
|
- `s` consists of parentheses only '()[]{}'.
|
||
|
|
|
||
|
|
## Solution
|
||
|
|
|
||
|
|
```py
|
||
|
|
class Solution:
|
||
|
|
def isValid(self, s: str) -> bool:
|
||
|
|
stack = []
|
||
|
|
pairs = {")": "(", "]": "[", "}": "{"}
|
||
|
|
|
||
|
|
for c in s:
|
||
|
|
if c in pairs:
|
||
|
|
if stack and pairs[c] == stack[-1]:
|
||
|
|
stack.pop()
|
||
|
|
else:
|
||
|
|
return False
|
||
|
|
else:
|
||
|
|
stack.append(c)
|
||
|
|
|
||
|
|
return True if not stack else False
|
||
|
|
```
|