首页 > 其他分享 >力扣-150-逆波兰表达式求值

力扣-150-逆波兰表达式求值

时间:2022-11-15 11:24:15浏览次数:37  
标签:150 tokens num1 num2 nums back 力扣 push 求值

刚做完字符串解码,说是和逆波兰表达式求值很像,都是栈操作

逆波兰式也知道,就是后缀表达式,但是要写一下子不一定写得出出来

评论有说这题应属easy,应该是因为把这段儿写出来了吧

int evalRPN(vector<string>& tokens) {
	vector<long> nums;
	int i = 0;
    long num1,num2;
	while (i < tokens.size()) {
		if (tokens[i] != "+" && tokens[i] != "-" && tokens[i] != "*" && tokens[i] != "/") 
			nums.push_back(stoi(tokens[i]));
		else {
			num1 = nums.back();
			nums.pop_back();
			num2 = nums.back();
			nums.pop_back();
			if (tokens[i] == "+") {
				nums.push_back(num1 + num2);
			}
			else if (tokens[i] == "-") {
				// 还有这里的顺序
				nums.push_back(num2 - num1);
			}
			else if (tokens[i] == "*") {
				nums.push_back(num1 * num2);
			}
			else {
				// 注意这里的顺序
				nums.push_back(num2 / num1);
			}
		}
		i++;
	}
	return nums.back();
}

注意这里的两个中间值num1和num2用int会越界,改成long

标签:150,tokens,num1,num2,nums,back,力扣,push,求值
From: https://www.cnblogs.com/yaocy/p/16891763.html

相关文章

  • 力扣 240. 搜索二维矩阵 II
    240.搜索二维矩阵II编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元......
  • 力扣278(java&python)-第一个错误的版本(简单)
    题目:你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本......
  • 力扣24 两两交换链表中的节点
    题目:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例:输入:head=[1,2,3,4]......
  • 力扣206 反转链表
    题目:给你单链表的头节点head,请你反转链表,并返回反转后的链表。示例:输入:head=[1,2,3,4,5]输出:[5,4,3,2,1] 双指针法:两个指针,cur指向当前节点,用来遍历,pre......
  • 力扣 74. 搜索二维矩阵
    74.搜索二维矩阵编写一个高效的算法来判断 mxn 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一......
  • 剑指 Offer 41. 数据流中的中位数 - 力扣(Leetcode)
    剑指Offer41.数据流中的中位数-力扣(Leetcode)分析维护两个堆,一个大根堆,一个小根堆。插入操作:当进行插入时,先判断大根堆中是否有元素,如果没有直接插入大根堆,若有......
  • 力扣35(java&python)-搜索插入位置(简单)
    题目:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为O(logn)的算法......
  • 剑指 Offer 59 - I. 滑动窗口的最大值 - 力扣(Leetcode)
    剑指Offer59-I.滑动窗口的最大值-力扣(Leetcode)一.分析方法一:数组长度为1e5,k的大小为1e4,因此直接暴力计算会TLE。我们可以思考一个更复杂的问题:询问任意区间中的......
  • LOJ10150
    题目描述Hecy又接了个新任务:BE处理。BE中有一类被称为GBE。以下是GBE的定义:空表达式是GBE如果表达式A是GBE,则[A]与(A)都是GBE如果A与B都是GBE,那......
  • 抖音"凶猛"的幕后英雄,火山引擎 DataTester 累计做过 150 万次 A/B 测试
    在国内互联网领域,字节跳动是最为推崇A/B测试的公司,旗下“抖音”、“今日头条”两大最著名产品,连APP的名字都是来源于A/B测试。A/B测试(也叫AB实验)也被称为对照实......