Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Observer Pattern
- Backjoon
- 백준
- Dynamic Programming
- golang
- Singleton Pattern
- GCP
- github
- easy
- Kotlin
- 피보나치
- kubernetes
- Top-down
- BubbleSort
- 알고리즘
- cpu scheduling
- KAKAO
- Programmers
- GKE
- 파이썬
- docker
- k8s
- mobaXTerm
- Codility
- 그리디
- Python
- go
- LeetCode
- java
Archives
- Today
- Total
To Be Developer
[LeetCode] 20. Valid Parentheses (Python) 본문
https://leetcode.com/problems/valid-parentheses/
[Python 풀이]
class Solution(object):
def isValid(self, s):
"""
:type s: str
:rtype: bool
"""
# stack 변수
stack = []
# 괄호 정보 딕셔너리
bracket = {'{' : '}',
'[' : ']',
'(': ')'}
# string 을 문자 하나하나 반복한다.
for i in s:
# i 가 괄호 시작이면 stack 에 추가한다.
if i == '{' or i =='[' or i=='(':
stack.append(i)
# 괄호 끝이면 stack 에서 pop 한다.
else:
# 딕셔너리 정보에 없으면 return False 한다.
try:
# data 변수에 stack의 맨 뒤 원소를 pop 한 후 저장
data = stack.pop()
# i 의 정보와 다르다면 return False
if i != bracket[data]:
return False
# 같으면 반복문을 넘김
else :
continue
# 키 정보가 없으면 return False
except:
return False
# stack 의 길이가 0 이면 return True
if len(stack)==0:
return True
# 그렇지 않으면 return False
else :
return False
if __name__ == "__main__":
data = "]"
sl = Solution()
print(sl.isValid(data))
'알고리즘 > LeetCode' 카테고리의 다른 글
[LeetCode] 219. Contains Duplicate II (Python) (0) | 2019.04.22 |
---|---|
[LeetCode] 504. Relative Ranks (Python) (0) | 2019.04.21 |
[LeetCode] 62. Unique Paths (GoLang, Python) (0) | 2019.04.12 |
[LeetCode] Climbing Stairs (GoLang, Python) (0) | 2019.04.11 |
[LeetCode] 965. Univalued Binary Tree (Python) (0) | 2019.04.08 |