首页 > 试题广场 >

中缀表达式转后缀表达式

[编程题]中缀表达式转后缀表达式
  • 热度指数:2108 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 128M,其他语言256M
  • 算法知识视频讲解
将中缀表达式转为后缀表达式,输入 a+b*c/d-a+f/b 输出 abc*d/+a-fb/+
要求:语言不限;输入输出均为单个字符串;操作数用单个小写字母表示,操作符只需支持 +-*/,按照四则运算顺序确定优先级,不包含括号

输入描述:
一个字符串为合法的中缀表达式
字符串长度不超过200000


输出描述:
对应的后缀表达式
示例1

输入

a+b*c/d-a+f/b

输出

abc*d/+a-fb/+
头像 白伟仝
发表于 2020-04-29 17:16:43
import java.util.*; public class Main { static String f(String str){//各子串按*/号断开 StringBuilder r = new StringBuilder(String.valueOf(str.cha 展开全文
头像 我不是苏格拉底
发表于 2022-10-25 23:06:51
非运算符:直接打印 运算符: 与栈顶元素作比较,依次出栈优先级>=此运算符的元素,遇到栈顶为更低时停止; 当前运算符入栈; 核心代码如下: const power = { "+": 1, "-": 1, "*": 2, 展开全文
头像 人要学会珍惜
发表于 2022-05-08 17:32:35
import java.util.Scanner; import java.util.Stack; import java.util.HashMap; import java.lang.String; public class Main&n 展开全文
头像 周荣i
发表于 2023-11-24 16:25:26
#include <stdio.h> #include<malloc.h> #include <string.h> typedef struct Stack { char* val; int size; int capacity; }Sta 展开全文
头像 wnanwanwnawn
发表于 2024-01-27 12:54:17
一. 不带括号的中缀表达式转后缀表达式1.分析1)先写几个例子(手动模拟转换), 由简单到复杂来观察有什么规律(1)A+B*C --> ABC*+(2)A+B*C+D --> ABC*+D+(3)A+B-C*D/E --> AB+CD*E/-2)观察可以发现由前缀表达式转后缀表达式 展开全文
头像 牛客题解官
发表于 2020-06-05 18:51:19
题解: 考察点: 栈,模拟 易错点: 由于习惯,日常生活中接触的一般为中缀表达式,导致很多同学不太明白什么是后缀表达式。后缀表达式被称为逆波兰式,是将运算符写在操作数之后的一种形式。简单来说就是如果存在E1 op E2形式的表达式,op是任意二元操作符,则E的后缀式为E1'E2' op,E1'和E2 展开全文