Lintcode - Convert Expression to Reverse Polish Notation
来源:互联网 发布:淘宝好评能修改吗 编辑:程序博客网 时间:2024/06/05 21:35
Given an expression string array, return the Reverse Polish notation of this expression. (remove the parentheses)
Example
For the expression [3 - 4 + 5]
(which denote by ["3", "-", "4", "+", "5"]), return [3 4 - 5 +]
(which denote by ["3", "4", "-", "5", "+"])
public class Solution { /** * @param expression: A string array * @return: The Reverse Polish notation of this expression */ public ArrayList<String> convertToRPN(String[] expression) { ArrayList<String> list = new ArrayList<String>(); Stack<String> stack = new Stack<String>(); for (int i = 0; i < expression.length; i++) { String str = expression[i]; if (isOp(str)) { if (str.equals("(")) { stack.push(str); } else if (str.equals(")")) { while (!stack.isEmpty()) { String p = stack.pop(); if (p.equals("(")) { break; } list.add(p); } } else { while (!stack.isEmpty() && order(str) <= order(stack.peek())) { list.add(stack.pop()); } stack.push(str); } } else { list.add(str); } } while (!stack.isEmpty()) { list.add(stack.pop()); } return list; } boolean isOp(String str) { if (str.equals("+") || str.equals("-") || str.equals("*") || str.equals("/") || str.equals("(") || str.equals(")")) { return true; } else { return false; } } int order(String a) { if (a.equals("*") || a.equals("/")) { return 2; } else if (a.equals("+") || a.equals("-")) { return 1; } else { return 0; } } }
0 0
- Lintcode - Convert Expression to Reverse Polish Notation
- [LintCode]Convert Expression to Reverse Polish Notation
- Lintcode - Convert Expression to Polish Notation
- [LintCode] Convert Expression to Polish Notation
- [Lintcode]Evaluate Reverse Polish Notation
- 【LintCode】Evaluate Reverse Polish Notation 逆波兰表达式求值
- Reverse Polish Notation
- calculate reverse polish notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- leetcode_Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- Evaluate Reverse Polish Notation
- 继亩食赌怪呀队崭偎蚕景沦聘欧脸客蚕吩贡节
- ThinkPHP 模版 基本用法
- QFileDialog用法收集
- iBatis SqlMap的配置总结
- Android自定义属性时TypedArray的使用方法
- Lintcode - Convert Expression to Reverse Polish Notation
- About Google Careers Students Guide to Technical Development
- rt-thread学习笔记(一)-开发环境
- MyEclipse 2013 字体颜色配置
- Java 8的一些常见用法
- 测试2
- Eclipse中新建Android项目目录详解
- VNCServer 安装与使用 -- 重装服务器系统过程
- Lintcode - Convert Expression to Polish Notation