かっこを変換[プログラマ]
問題の概要
https://programmers.co.kr/learn/courses/30/lessons/60058
文字列pは、括弧"("和")からなる.
「(」と「)」の数が同じ場合、この文字列はバランス文字列と呼ばれます.
()のオーバーラップからなるブリッジに良い文字列を正しい文字列と呼ぶ.
文字列pはバランスのとれた文字列である.pを正しい文字列にする方法を親切に再帰的に教えてあげます.コードするだけです.
アイデア
2020年下半期にKakaoの公募で回答した最初の質問を思い出してみましょう
本当にどうすればいいか詳しく教えてくれて、直接コードに移せばいいです.
同じタイプなので、なるべく説明を写して編集したいと思います.
uバランス文字列かヒントか
バランス文字列
思ったより時間がかかりました…
次は回帰式のケースですが、極端に回帰で処理方法1を繰り返すのですか?テストケースを作って、処理方法1万個の注釈を解き、残りの注釈はこのようにします.
Python初心者として、よくできています。
Pythonコード
def rev(s):
for i in range(len(s)):
if s[i]=='(':
s[i] = ')'
else:
s[i] = '('
return s
def rec(s,d):
if s ==[]:
return []
stck =0
is_corr = True
for i in range(len(s)):
if s[i] == '(':
stck+=1
else:
stck-=1
if stck < 0:#음수로 떨어진 적이 있다면 올바르지 u가 올바르지 않아서임
is_corr = False
if stck ==0:
u = s[0:i+1]
v = s[i+1:]
print("".join(u),"".join(v))
if is_corr:
#print(rec(v,d+1))
return u + rec(v,d+1)
else:
return ['('] + rec(v,d+1)+[')']+rev(u[1:-1])
def solution(p):
answer = ''
answer = "".join(rec(list(p),0))
return answer
Reference
この問題について(かっこを変換[プログラマ]), 我々は、より多くの情報をここで見つけました https://velog.io/@coding3392/프로그래머스-괄호변환テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol