https://app.codility.com/programmers/lessons/7-stacks_and_queues/brackets/

 

Brackets coding task - Learn to Code - Codility

Determine whether a given string of parentheses (multiple types) is properly nested.

app.codility.com

 

  • N개의 문자로 구성된 문자열 S가 주어질 때
  • 아래의 조건 중에서 하나의 조건이라도 만족하면 properly nested
    • S는 비어있다.
    • S는 "(U)" or "[U]" or "{U}" 형식을 가지면 U는 properly nested.
    • S는 V와 W가 적절하게 중첩된 문자열인 "VM" 형식을 가지면 V와 W는 properly nested 
  • properly nested인 경우 1출력, 아닌 경우 0출력
  • O(N)

 

def solution(S):
    stack = []
    for i in range(0, len(S)):
        input = S[i]
        if input=='(' or input=='[' or input=='{':
            stack.append(input)
        if len(stack) == 0:
            return 0

        if input==')':
            if stack.pop()!='(':
                return 0
        elif input==']':
            if stack.pop() !='[':
                return 0
        elif input=='}':
            if stack.pop() !='{':
                return 0
    if len(stack)==0:
        return 1
    else:
        return 0

+ Recent posts