首页 > 试题广场 >

计算表达式

[编程题]计算表达式
  • 热度指数:28043 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
对于一个不存在括号的表达式进行计算

输入描述:
存在多组数据,每组数据一行,表达式不存在空格


输出描述:
输出结果
示例1

输入

6/2+3+3*4

输出

18
头像 健康快乐最重要
发表于 2020-03-17 10:29:16
这才是面试官想看到的 #include<iostream> #include<stack> #include<string> using namespace std; int getleval(char op){ if(op=='*'||op=='/'){ 展开全文
头像 亚枫
发表于 2022-03-20 20:57:08
计算表达式 C++题解 注意: 符号栈首先压入'#',字符串最后添加'$',保证所有运算符都用于运算。 栈顶运算符优先级小于当前运算符优先级时,当前运算符入栈;否则进行二元运算。 字符串型数字读取:while循环读入数字字符并转换为数字类型,注意循环时的进位操作。 由于存在除法,所有数字都设为do 展开全文
头像 Perceive109
发表于 2023-01-20 15:21:32
全文代码逐行注释;基本思路同牛客KY129, 采用王道复试2023章节4.4思路如有错误,请多指教 :) // // Created by Perceive109 on 2023/1/20. // # include "iostream" # include "string" # include " 展开全文
头像 牛客440904392号
发表于 2024-10-02 15:40:42
print(int(eval(input())))
头像 牛奶呢
发表于 2024-01-26 10:04:06
//stack <char> oper 操作符 //stack <double> num 中间数字 //从左向右遍历表达式 1.数字、num压栈 2.运算符 a.高优先级 oper压栈 b.低优先级/相等 先oper弹出一个、再num弹出两个进行运算压回num, //再把新 展开全文
头像 zTangxx
发表于 2026-03-10 15:37:03
#include <bits/stdc++.h> using namespace std; string s; //运算符优先级 int priority(char op){ int p; if(op == '+' || op == '-') p = 1; if 展开全文
头像 牛客910759732号
发表于 2026-03-18 16:28:55
#include <iostream> #include <stdio.h> #include <map> #include <stack> #include <string> #include <string.h> using 展开全文
头像 rainman_
发表于 2023-03-15 18:23:05
#include <iostream> #include <string> #include <vector> #include <algorithm> #include <stack> #include <map> using 展开全文
头像 TomatoHead
发表于 2024-03-08 15:41:45
思路:扫描完整个输入字符串之后,挨个输出字符,如果一直输出的是数字,就重新存到另一个字符串,直到检测到出现操作符为止,此时将字符串中的数字字符串利用stod转换为整数压入数据栈。操作符方面,首先维护一个map,存储各级运算符之间的优先级关系,当输出的是操作符的时候,与操作符栈顶元素进行优先级比较,如 展开全文
头像 ditch-11
发表于 2022-03-26 16:38:14
while True: try: s = input() print(int(eval(s))) except: break #include<bits/stdc++.h> using namespace std; i 展开全文

问题信息

难度:
80条回答 10314浏览

热门推荐

通过挑战的用户

查看代码
计算表达式