728x90
반응형
<스택의 응용> 괄호 매칭
1.왼쪽 괄호는 스택에 push
2.오른쪽 괄호를 읽으면 pop 수행
3.pop된 왼쪽 괄호와 바로 읽었던 오른쪽 괄호가 다른 종류이면 에러 처리, 같은 종류이면 다음 괄호를 읽음
4.모든 괄호를 읽은 뒤 에러가 없고 스택이 empty이면, 괄호들이 정상적으로 사용된 것
5.만일 모든 괄호를 처리한 후 스택이 empty가 아니면 짝이 맞지 않는 괄호가 스택에 남은 것이므로 에러 처리
파이썬 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
|
def is_matched(expr):
lefty = '({['
righty = ')}]'
S = Stack() #스택구현은 이전 글에 있습니다.
for c in expr:
if c in lefty: S.push(c)
elif c in righty:
if S.is_empty():
return False
if righty.index(c) != lefty.index(S.pop()):
return False
return S.is_empty()
|
cs |
728x90
반응형
'자료구조' 카테고리의 다른 글
[파이썬 자료구조] Sorting: 선택정렬 (0) | 2020.06.10 |
---|---|
[파이썬 자료구조] 회문 검사 (0) | 2020.05.05 |
#9 자료구조 <Stack> 파이썬 (0) | 2020.05.05 |
[파이썬 자료구조] 이중연결리스트(Doubly Linked Lists) (0) | 2020.05.05 |
#7 자료구조 <Sierpinski Triangles recursively> 파이썬 (0) | 2020.05.05 |