문제 풀이 사고방식 - letcode 제2 0 문제: 유효한 괄호
제목 설명: '(', ')', '{', '}', '[', ']' 만 포함 하 는 문자열 을 지정 하여 문자열 이 유효한 지 판단 합 니 다.유효한 문자열 은 만족 해 야 합 니 다. 왼쪽 괄호 는 같은 유형의 오른쪽 괄호 로 닫 아야 합 니 다.왼쪽 괄호 는 반드시 정확 한 순서 로 닫 아야 한다.빈 문자열 은 유효한 문자열 로 여 겨 질 수 있 습 니 다.예시 1: 입력: "()" 출력: true 예시 2: 입력: "() [] {}" 출력: true 예시 3: 입력: "(]" 출력: false 예시 4: 입력: "([)]" 출력: false 예시 5: 입력: "{[]}"출력: true 본 제 는 사전 스 택 을 추가 하 는 방법 을 사용 합 니 다. 먼저 사전 을 만 듭 니 다. key 는 왼쪽 괄호 이 고 value 는 오른쪽 괄호 입 니 다. 그 다음 에 빈 스 택 을 만 듭 니 다. 그 다음 에 입력 한 문자열 입 니 다. 왼쪽 괄호 라면 스 택 에 들 어 갑 니 다. 오른쪽 괄호 라면 먼저 스 택 안의 요소 가 비어 있 는 지 판단 하고 비어 있 으 면 false 로 돌아 갑 니 다. 그 다음 에 이 괄호 가 스 택 의 스 택 꼭대기 요소 와 있 는 지 판단 합 니 다.대응 하 는 오른쪽 괄호 가 같 습 니 다. 같 으 면 계속 순환 합 니 다. 그렇지 않 으 면 false 로 돌아 갑 니 다. 전체 요 소 를 옮 겨 다 닌 후 스 택 이 비어 있 으 면 true 로 돌아 갑 니 다. 그렇지 않 으 면 false 로 돌아 갑 니 다. 코드 는 다음 과 같 습 니 다.
class Solution:
def isValid(self, s: str) -> bool:
dic = {
'(':')','[':']','{':'}'}
stack = []
for i in s:
if i in dic:
stack.append(i)
else:
if len(stack) == 0:
return False
elif i == dic[stack.pop()]:
continue
else:
return False
if len(stack) == 0:
return True
else:
return False
제출 후 통과.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
비슷한 이름의 Attribute를 많이 만들어 삭제하는 Houdini사용 소프트웨어는 Houdini16.5입니다 배열에서는 애트리뷰트의 보간이 잘 동작하지 않는 것과 AttributeCreateSOP 노드에서 Size가 4를 넘는 애트리뷰트를 작성해도 값이 조작할 수 없어 의미가 없...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.