接尾辞式の作成
5613 ワード
作成日:2022年1月24日午後5:23
アイデア res文字列に数値を直接追加し、演算子をスタックに入れます. 演算優先度がより高い場合、または同じ演算子がスタックにある場合、スタックからresを減算して追加します. 「」に遭遇すると、スタックは「」(「前」の演算子をポップアップし、resに追加します. )スタックの残りの演算子をresに追加します.
コード#コード#
# 후위표기식 만들기
import sys
sys.stdin = open("input.txt", "rt")
s = input()
stack = []
res = ''
for x in s:
if x.isdecimal():
res += x
else:
if x == '(':
stack.append(x)
elif x == '*' or x == '/':
while stack and (stack[-1] == '*' or stack[-1] == '/'):
res += stack.pop()
stack.append(x)
elif x == '+' or x == '-':
while stack and stack[-1] != '(':
res += stack.pop()
stack.append(x)
elif x == ')':
while stack and stack[-1] != '(':
res += stack.pop()
stack.pop() # '(' 를 스택에서 제거
while stack:
res += stack.pop()
print(res)
Reference
この問題について(接尾辞式の作成), 我々は、より多くの情報をここで見つけました https://velog.io/@lsj8706/후위-표기식-만들기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol