goden1626

package
v0.0.0-...-b071cee Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 9, 2023 License: GPL-3.0 Imports: 0 Imported by: 0

README

面试题 16.26.计算器

1. 题目描述

给定一个包含正整数、加(+)、减(-)、乘(*)、除(/)的算数表达式(括号除外),计算其结果。

表达式仅包含非负整数, +-*/ 四种运算符和空格 `` 。 整数除法仅保留整数部分。

示例 1:

输入: "3+2*2"
输出: 7

示例 2:

输入: " 3/2 "
输出: 1

示例 3:

输入: " 3+5 / 2 "
输出: 5

说明:

  • 你可以假设所给定的表达式都是有效的。
  • 不要 使用内置的库函数 eval

标签 数学 字符串

2. 解题

使用两个栈,一个数字栈,一个符号栈.

  • 遇数字,则进数字栈
  • 遇运算符
    • 当前运算符优先级大于栈顶运算符优先级,入栈
    • 当前运算符优先级小于栈顶运算符优先级,取出数字栈顶两个数字与符号栈顶符号,numStack[-2] op numStack[-1],结果入数字栈
  • 字符串结束,则依次取出数字栈与符号栈进行运算,运算结果放回数字栈。

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL