武汉游戏王吧 关注:2,899贴子:288,015
  • 1回复贴,共1
求助

简便算法丢括号怎么去

只看楼主收藏回复



IP属地:上海1楼2023-05-30 17:31回复
    简便算法丢括号可以使用逆波兰表达式来解决。逆波兰表达式是一种不需要括号的数学表达式,它将操作符放在操作数的后面,例如:中缀表达式:(2 + 3) * 4 - 5逆波兰表达式:2 3 + 4 * 5 -可以使用栈来实现逆波兰表达式的计算。具体步骤如下:创建一个操作数栈和一个运算符栈。从左到右扫描中缀表达式,遇到操作数直接入操作数栈。遇到运算符时,如果运算符栈为空或者栈顶元素为左括号,则将运算符入运算符栈。如果遇到右括号,则将运算符栈中的运算符依次弹出并加入操作数栈,直到遇到左括号为止,左括号不入栈。如果遇到运算符且优先级高于栈顶运算符,则将运算符入运算符栈。如果遇到运算符且优先级小于等于栈顶运算符,则将运算符栈中的运算符弹出并加入操作数栈,直到运算符栈为空或者栈顶运算符优先级小于当前运算符。扫描完中缀表达式后,将运算符栈中的运算符依次弹出并加入操作数栈。最终操作数栈中的唯一元素即为逆波兰表达式的计算结果。使用逆波兰表达式可以避免括号的使用,同时可以通过栈来实现表达式的计算,具有较高的效率和简便性。


    IP属地:青海2楼2023-05-30 17:35
    回复