代码编织梦想

public int evalRPN(String[] tokens) {
        Stack<Integer> stack = new Stack<>();
        int result;
        for (String token : tokens) {
            if (token.length() > 1) {
                stack.push(Integer.parseInt(token));
            } else {
                char c = token.charAt(0);
                if (c == '+' || c == '-' || c == '*' || c == '/') {
                    int a = stack.pop();
                    int b = stack.pop();
                    if (c == '+') stack.push(a + b);
                    if (c == '-') stack.push(b - a);
                    if (c == '*') stack.push(a * b);
                    if (c == '/') stack.push(b / a);
                } else {
                    stack.push(Integer.parseInt(token));
                }
            }
        }
        result = stack.pop();
        return result;
    }

这道题思路其实比较简单,就是用栈把要运算的数字进行保存,还有一个点就是用String数组保存表达式,我想之所以使用String,是因为题目给出来的数值范围是-200到200,char类型存储不了这些数值,所以用String存储就说得通了。
还有就是我还判断了String的长度,是因为运算符不能使用Integer.parseInt()方法,如果不判断的话就会导致异常。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_53226437/article/details/122802201

Leetcode详细题解-JAVA版-爱代码爱编程

个人在leetcode刷题的过程中, 也记录了一些解题的过程, 不一定是最优的, 但是都能正确通过, 还有一些是官方给的解答, 本文会陆陆续续更新, 有一些本人看到的一些好的解题博文, 本文直接引用了原文, 如涉及侵权或博文失效, 请联系博主删除博文链接 LeetCode 1- 100 1. 两数之和 : https://blog.csdn.net/lo

LeetCode刷题链表-爱代码爱编程

LeetCode刷题 栈150.逆波兰表达式求值链表21.合并2个有序列表(迭代+递归)203.移除链表元素147.对链表进行插入排序160.相交链表141.环形链表(哈希表未完成)206.反转链表234. 回文链表83. 删除排序链表中的重复元素237.删除链表中的节点876.链表的中间节点1290.二进制链表转整数143. 重排链表142. 环

LeetCode刷题笔记(Java)---第141-160题-爱代码爱编程

文章目录 笔记导航141. 环形链表142. 环形链表 II143. 重排链表144. 二叉树的前序遍历145. 二叉树的后序遍历146. LRU缓存机制147. 对链表进行插入排序148. 排序链表149. 直线上最多的点数150. 逆波兰表达式求值151. 翻转字符串里的单词152. 乘积最大子数组153. 寻找旋转排序数组中的最小值154.

LeetCode-数据结构-爱代码爱编程

文章目录 应做未做未弄懂经典题+易错题一、长见识的方法二、杂七杂八积累三、面试常考题目索引java刷题常用树数组摩尔投票算法堆数据流的中位数排序四、基础知识总结4.x 数组前缀和数组前缀和+hash经典题目差分数组树状数组线段树4.x 链表链表反转删除排序链表中的重复元素其他链表相关问题4.1字符串字符串匹配—KMP回文子串马拉车(Manacher

leetCode 笔记——探索队列 & 栈-爱代码爱编程

探索队列 & 栈 队列:先入先出的数据结构 队列实现你想咋实现就咋实现#include <iostream> class MyQueue { private: // store elements vector<int> data; // a po

算法刷题总结:栈与队列-爱代码爱编程

1 知识点 1.1 栈 堆栈(英语:stack)又称为栈或堆叠,是计算机科学中的一种抽象数据类型,只允许在有序的线性数据集合的一端(称为堆栈顶端,英语:top)进行加入数据(英语:push)和移除数据(英语:pop)的运算。因而按照后进先出(LIFO, Last In First Out)的原理运作。 栈常用一维数组或链表来实现。 栈使用两种基本操

【科学刷题】完全吃透所有栈相关的算法题-爱代码爱编程

https://leetcode-cn.com/tag/stack/problemset/ 文章目录 1 常规的栈相关题目1.1 括号匹配1.1.1 有效的括号1.1.2 移除无效的括号1.2 基于栈的模拟题1.2.1 原子的数量1.2.2 反转每对括号间的子串1.2.3 括号的分数1.2.4 字符串解码1.3 栈的压入、弹出序列1.4 表达式求

自用力扣刷题记录(Python,数与位、栈与递归)-爱代码爱编程

文章目录 三、数与位7 整数反转9. 回文数564 寻找最近的回文数231. 2 的幂342. 4的幂326. 3的幂504. 七进制数263. 丑数190. 颠倒二进制位191. 位1的个数476. 数字的补数461. 汉明距离477. 汉明距离总和693. 交替位二进制数393. UTF-8 编码验证172. 阶乘后的零458.可怜的小猪258

[力扣刷题总结](栈和单调栈篇)-爱代码爱编程

文章目录 ~~~~~~~~~~~~栈~~~~~~~~~~~~剑指 Offer 31. 栈的压入、弹出序列解法1:模拟栈20. 有效的括号解法1:栈相似题目: 32. 最长有效括号解法1:栈解法2:动态规划解法3:不需要额外的空间150. 逆波兰表达式求值解法1:栈+字符串相似题目:224. 基本计算器解法1:栈+字符串相似题目:227. 基本计算器

C++数据结构之栈,队列,树(力扣题解)-爱代码爱编程

目录 栈: 队列:  1:用栈实现队列 2:用队列实现栈 3:有效的括号 栈!匹配的神!消消乐的神! 4:删除字符串中的所有相邻重复项 5:逆波兰表达式求值(离大谱) 6:滑动窗口最大值(困难单调队列) 二叉树  二叉树的遍历: 二叉树的递归遍历方式: 二叉树的迭代遍历方式:栈 栈: 特性:先进后出 C++实现: #i

数据结构与算法——动态规划-爱代码爱编程

目录 例1:爬楼梯(easy)例2:打家劫舍(easy)例3:最大字段和(easy)例4:找零钱(medium)例5:三角形(medium)例6:最长上升子序列(medium,hard)例7:最小路径和(medium)例8:地牢游戏(hard) 例1:爬楼梯(easy) class Solution { public: int clim

数组中和最大的连续子数组-爱代码爱编程

给定一个数组array,求其连续子数组,该子数组的元素和最大。 Method1: 暴力搜索 int FindGreatestSumOfSubArray(vector<int> array) { const int sie = array.size(); if(size<1){

算法打卡,用于自律-爱代码爱编程

题目一 解法 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(i

LeetCode 454. 四数相加 II-爱代码爱编程

使用哈希法的经典题目,与两数之和的思路有点像。把暴力法四重循环变成了两个二重循环 class Solution { public: int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, v

剑指 Offer 05. 替换空格-爱代码爱编程

剑指 Offer 05. 替换空格 class Solution { public String replaceSpace(String s) { //把字符串中的空格替换为%20; //首先把字符串转换为字节 //通过遍历,将字符串转换为字节,然后当遍历到空格的时候,用%20代替

力扣218. 天际线问题-爱代码爱编程

力扣218. 天际线问题 对于开始点存正,结束点存负,然后存到相应的x坐标里,x坐标排序。然后遍历x坐标,对每个坐标单独处理最大值最小值即可。这里用了sortedmap省去了离散化 import java.util.SortedMap; import java.util.TreeMap; class Solution { public List

Leetcode 刷题笔记(十) —— 栈与队列篇之经典题目-爱代码爱编程

文章目录 系列文章目录前言栈和队列的简单使用题录232. 用栈实现队列225. 用队列实现栈20. 有效的括号1047. 删除字符串中的所有相邻重复项150. 逆波兰表达式求值239. 滑动窗口最大值 系列文章目录 一、 数组类型解题方法一:二分法 二、数组类型解题方法二:双指针法 三、数组类型解题方法三:滑动窗口 四、数组类型解题方法四:模