かっこの変換(Python)


質問する


かっこの変換

問題の説明


所定の要求に従って実施される問題.
文字列を2つの文字列に分離し、この2つの文字列を分離するため、再帰形式として実現される.균형잡힌 문자열올바른 문자열を正しく理解する場合、균형잡힌 문자열)で始まるべきであるが、数は正しくなければならない.uは再分離できない平衡文字列であり、()の数が正しい場合、直ちに終了しなければならない.
上記の올바른 문자열uで始まる場合、(は正しい文字列でなければならない.uは、分離不可能なバランス文字列の前提となっているからである.

プールコード

# 두 균형잡힌 괄호 문자열로 분리
def divide(string):
    if string == "":
        return ""
    answer = ""
    top = 0
    u = v = ""
    for i in range(len(string)):
        top = top + 1 if string[i] == "(" else top - 1
        u += string[i]
        if top == 0:
            v = string[i + 1 :]
            break
    # 만약 u가 올바른 괄호 문자열이라면
    if u[0] == "(":
        answer += u + divide(v)
    else:
        answer += "(" + divide(v) + ")"
        for s in u[1:-1]:
            answer += "(" if s == ")" else ")"
    return answer


def solution(p):
    answer = ""
    answer += divide(p)
    return answer