HTMLify

LeetCode - Baseball Game - Go
Views: 33 | Author: abh
import "fmt"
type Stack struct {
    values []int
}
func (stack *Stack) push(n int) {
    stack.values = append(stack.values, n)
}
func (stack *Stack) pop() {
    stack.values = stack.values[:len(stack.values)-1]
}

func sti(s string) int {
    var i int
    n := false
    if s[0] == '-' {
        n = true
        i++
    }

    var num int
    for ;i<len(s); i++ {
        num = (num*10)+int(s[i])-48
    }
    if n {
        return -num
    }
    return num
}

func is_numder(s string) bool{
    for _, c := range s {
        if !((47 < c && c < 58) || c == '-') {
            return false
        }
    }
    return true
}

func calPoints(operations []string) int {
    var stack Stack
    for _, o := range operations {
        if is_numder(o) {
            n := sti(o)
            stack.push(n)
        }
        if o == "+" {
            l := len(stack.values)
            stack.push(stack.values[l-2]+stack.values[l-1])
        }
        if o == "D" {
            stack.push(stack.values[len(stack.values)-1]*2)
        }
        if o == "C" {
            stack.pop()
        }
    }
    var ans int
    for _, v := range stack.values {
        ans += v
    }
    fmt.Println(stack.values)
    return ans
}

Comments