题解 | #牛牛与后缀表达式#

牛牛与后缀表达式

https://ac.nowcoder.com/acm/problem/212914

技巧
    栈
思路
    遇到数字就压栈  遇到操作符就拿栈顶两个进行运算 然后再把结果压栈
实现
package main

import (
    "strconv"
)
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 给定一个后缀表达式,返回它的结果
 * @param str string字符串 
 * @return long长整型
*/
// 逆波兰运算
func legalExp( str string ) int64 {
    // write code here
    stack := make([]int64, 0)  
    numstr := ""
    for i := 0; i < len(str); i ++ {
        if str[i] == '#' {
            num, _ := strconv.Atoi(numstr)
            stack = append(stack, int64(num))
            numstr = ""
        }else if str[i] == '+' {
            top1 := stack[len(stack) - 1]
            top2 := stack[len(stack) - 2]
            stack = stack[:len(stack) - 2]
            stack = append(stack, top1 + top2)
        }else if str[i] == '-' {
            top1 := stack[len(stack) - 1]
            top2 := stack[len(stack) - 2]
            stack = stack[:len(stack) - 2]
            stack = append(stack, top2 - top1)
        }else if str[i] == '*' {
            top1 := stack[len(stack) - 1]
            top2 := stack[len(stack) - 2]
            stack = stack[:len(stack) - 2]
            stack = append(stack, top1 * top2)
        }else {
            numstr += string(str[i])
        }
    }
    return stack[0]
    
}


全部评论

相关推荐

今天 18:19
已编辑
长江大学 Java
点赞 评论 收藏
分享
05-05 21:45
已编辑
广州大学 Java
点赞 评论 收藏
分享
04-30 21:35
已编辑
长安大学 C++
晓沐咕咕咕:评论区没被女朋友好好对待过的计小将可真多。觉得可惜可以理解,毕竟一线大厂sp。但是骂楼主糊涂的大可不必,说什么会被社会毒打更是丢人。女朋友体制内生活有保障,读研女朋友还供着,都准备订婚了人家两情相悦,二线本地以后两口子日子美滋滋,哪轮到你一个一线城市房子都买不起的996清高计小将在这说人家傻😅
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务