codechef Transform the Expression 转换成逆波兰式
来源:互联网 发布:flash游戏数据抓取 编辑:程序博客网 时间:2024/06/10 16:32
把一般式子转换成逆波兰式。
这里的都是加括号的,难度降低点。
Example
Input:3(a+(b*c))((a+b)*(z+x))((a+t)*((b+(a+c))^(c+d)))Output:abc*+ab+zx+*at+bac++cd+^*
知道其特点就好办:
1 遇到字母一定是可以输出的
2 遇到操作符号就入栈
3 遇到括号')',就出栈一个操作符 - 注意不是所有操作符出栈
不带括号的操作区别就在于是否需要判断符号的优先级。
#include <stack>#include <stdio.h>#include <iostream>using namespace std;int TransformTheExpression(){int T = 0, c = 0, id = 0;scanf("%d\n", &T);char buffer[40200];char res[40200];stack<char> stk;if ((c = fread(buffer, 1, 40200, stdin)) > 0){for (int i = 0; i < c; i++){if ('(' == buffer[i]) continue;if ( buffer[i] == '+' || buffer[i] == '-' ||buffer[i] == '*' || buffer[i] == '/' || buffer[i] == '^'){stk.push(buffer[i]);}else if (buffer[i] == ')'){res[id++] = stk.top();stk.pop();}elseres[id++] = buffer[i];}}fwrite(res, sizeof(char), id, stdout);return 0;}
1 0
- codechef Transform the Expression 转换成逆波兰式
- SPOJ Transform the Expression 逆波兰式算法题解
- Transform the Expression
- 逆波兰式转换
- 波兰式转换为逆波兰式
- SPOJ 4. Transform the Expression
- 将表达式转换成逆波兰式
- 将表达式转换成逆波兰式
- 将表达式转换成逆波兰式
- 将表达式转换成逆波兰式
- 将表达式转换成逆波兰式
- [SPOJ]算数表达式转换成逆波兰式
- 数据结构基础:逆波兰式转换
- 中缀式转换为逆波兰表达式
- 波兰式,逆波兰式
- 递归实现逆波兰式到正常表达式的转换
- 中缀表达式和逆波兰式的相互转换
- 【数据结构】中缀表达式转换后缀表达式(逆波兰式)
- 三步快速搭建Android开发环境(支持win7,win8系统)
- 现代产品估计又要涨价了
- 爱这条路终究是要走完的
- 源码分析HashMap
- nyoj-518-取球游戏
- codechef Transform the Expression 转换成逆波兰式
- linux做服务器OS的优点
- 从蛋糕店看营销策略
- Least Common Multiple (HDU 1019)
- linux的input子系统(三)
- Android_Codenames, Tags, and Build Numbers
- 我的学习之路——Oracle数据库之单行函数
- 排除“计算机-默认 权限设置未将 COM 服务器应用程序”的错误
- 汤姆·霍尔的快速成为游戏开发者的秘诀 顶级游戏设计大师谈如何成为一名游戏设计师!