今日のタックルログ
この問題で遭遇したタックルを記録するとどうなるか?TILを装ったタックルログとも呼ばれる!(まるまる2、3時間も食べましたが…)
Pythonで問題を解く
https://www.acmicpc.net/problem/2504
これは典型的なスタックタイプの問題です.
しかし、誰もが与えられたカッコが正しいかどうかは容易に考えられますが、肝心なのはどのように中間値を格納するかです.考えなければならない反例も多く、厄介な問題だ.
カッコと計算結果を1つのスタックに置く方法で解いた.
このようなものが現れたのは...あなたはその予約語を変数名に書きました.
億...⭐️
ここから先は自業自得の戦いだ.🔥 考えなければならない反例が多すぎて、書ききれないかもしれません.
私が選ばれたのは「([]」、「[]」というテストケースです.
こちらの回答を参考にすると助かります…!!
(半礼鉢だったので、ありがたかったです.🙇♀️
👉 https://www.acmicpc.net/board/view/30310
Pythonで問題を解く
質問:2504。かっこの値
https://www.acmicpc.net/problem/2504
これは典型的なスタックタイプの問題です.
しかし、誰もが与えられたカッコが正しいかどうかは容易に考えられますが、肝心なのはどのように中間値を格納するかです.考えなければならない反例も多く、厄介な問題だ.
カッコと計算結果を1つのスタックに置く方法で解いた.
土工
if b == '(' or '[':
ほほほ、何を間違えたの...?驚いたことに、何の考えもなく、そんなに少なく書いていて、最初はスタックがおかしく動いていたので、何だと思いますか.シャベル本
typeerror: 'str' object is not callable
typeerror: 'int' object is not callable
△驚いたことに、今日は両方見ました!このようなものが現れたのは...あなたはその予約語を変数名に書きました.
億...⭐️
シャベル男巴三:aka。反例パーティー
ここから先は自業自得の戦いだ.🔥 考えなければならない反例が多すぎて、書ききれないかもしれません.
私が選ばれたのは「([]」、「[]」というテストケースです.
こちらの回答を参考にすると助かります…!!
(半礼鉢だったので、ありがたかったです.🙇♀️
👉 https://www.acmicpc.net/board/view/30310
最終コード
bracket_str = input()
def get_bracket_val(string):
stack = []
bracket_val = 0
for b in string:
if b == '(' or b == '[':
stack.append(b)
else:
if not stack: return 0
if b == ')':
if stack[-1] == '(':
stack.pop()
stack.append('2')
elif stack[-1] == '[': return 0
elif stack[-1].isdigit():
total = 0
while stack and stack[-1].isdigit():
total += int(stack.pop())
if not stack: return 0
if stack[-1] == '(':
stack.pop()
push_val = total * 2
stack.append(str(push_val))
elif stack[-1] == '[': return 0
else: #b == ']'
if stack[-1] == '[':
stack.pop()
stack.append('3')
elif stack[-1] == '(': return 0
elif stack[-1].isdigit():
total = 0
while stack and stack[-1].isdigit():
total += int(stack.pop())
if not stack: return 0
if stack[-1] == '[':
stack.pop()
push_val = total * 3
stack.append(str(push_val))
elif stack[-1] == '(': return 0
for x in stack:
if x.isdigit(): bracket_val += int(x)
else: return 0
return bracket_val
print(get_bracket_val(bracket_str))
Reference
この問題について(今日のタックルログ), 我々は、より多くの情報をここで見つけました https://velog.io/@dldbdud314/오늘의-삽질로그テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol