본문 바로가기
파이썬

파이썬 간단한 괄호 일치를 확인하는 Python 프로그램

by º기록 2020. 10. 31.
반응형

저는 Python 초보자이고 주어진 문자열의 간단한 대괄호 "(", ")"가 균등하게 일치하는지 확인하는이 연습을 보았습니다.

아직 접하지 않은 스택 명령을 사용하여 여기에서 예제를 보았으므로 다른 접근 방식을 시도했습니다. 아무도 내가 어디로 잘못 가고 있는지 말해 줄 수 있습니까?

def matched(str):
    ope = []
    clo = []
    for i in range(0,len(str)):
        l = str[i]
        if l == "(":
            ope = ope + ["("]
        else:
            if l == ")":
                clo = clo  + [")"]
            else:
                return(ope, clo)
    if len(ope)==len(clo):
        return True
    else:
        return False

아이디어는 "("및 ")"를 두 개의 개별 목록으로 쌓은 다음 목록의 길이를 비교하는 것입니다. 또한 각각 (또는)을 보유한 관련 i와 함께 목록 ope 및 clo를 추가 한 다른 버전이 있습니다.

시간 내 줘서 고마워!

 

해결 방법

 

이를 수행하는 매우 약간 더 우아한 방법은 다음과 같습니다. for 루프를 정리하고 목록을 간단한 카운터 변수로 바꿉니다. 또한 카운터가 0 미만으로 떨어지면 false를 반환하여 matched ( ") (") False 를 반환합니다.

def matched(str):
    count = 0
    for i in str:
        if i == "(":
            count += 1
        elif i == ")":
            count -= 1
        if count < 0:
            return False
    return count == 0

 

참조 페이지 https://stackoverflow.com/questions/38833819

 

 

반응형

댓글