かっこの変換(Programmers 60058)
🧑💻 这个变换
新開発者として
用語定義
文字列が
入力
パラメータの説明
presult"(()())()""(()())()"")(""()""()))((()""()(())()"
🧑💻 解決策
カッコが正しいかどうかを確認し、不正なブレークポイントを見つけるには関数が必要です.
🧑💻 コード#コード#
def correction(br):
stack = []
for b in br:
if b == '(':
stack.append(b)
else:
try:
stack.pop()
except:
return False
if len(stack) == 0:
return True
else:
return False
# 분기점 만들어주기
def split_brack(br):
cnt = 0
for idx in range(len(br)):
if br[idx] == '(':
cnt += 1
else:
cnt -= 1
if cnt == 0:
return idx + 1
return idx + 1
def solution(p):
answer = ''
if (p == "") or (correction(p) == True):
return p
idx = split_brack(p)
u, v = p[:idx], p[idx:]
if correction(u):
answer = u + solution(v)
else:
answer = '(' + solution(v) + ')'
u = u[1:-1].replace('(', 'a')
u = u.replace(')', 'b')
u = u.replace('a', ')')
u = u.replace('b', '(')
answer = answer + u
return answer
🧑💻 総評
Reference
この問題について(かっこの変換(Programmers 60058)), 我々は、より多くの情報をここで見つけました https://velog.io/@moonpiderman/괄호-변환-Programmers-60058テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol