美文网首页
数据结构之"栈"

数据结构之"栈"

作者: 陈裔松的技术博客 | 来源:发表于2019-04-25 19:57 被阅读0次
    栈(计算机术语)

    栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

    题目: 682. 棒球比赛

    思路:用数组实现堆栈结构,进而得出每轮的分数

    function calPoints(arr) {
        // 用数组来实现堆栈结构,pop,push
        let result = [];
        // 上一轮的数据
        let pre1 = 0;
        // 对数组进行遍历,遍历的目的是处理得分
        let pre2 = 0;
        arr.forEach(item => {
            switch (item) {
                case 'C':
                    if (result.length) {
                        result.pop();
                    } else {
                        result.push(0);
                    }
                    break;
                case 'D':
                    if (result.length) {
                        pre1 = result.pop();
                        result.push(pre1, pre1 * 2);
                    } else {
                        result.push(0);
                    }
                    break;
                case '+':
                    if (result.length) {
                        pre1 = result.pop();
                        if (result.length) {
                            pre2 = result.pop();
                            result.push(pre2, pre1, pre2 + pre1);
                        } else {
                            result.push(pre1, 0);
                        }
                    } else {
                        result.push(0);
                    }
                    break;
                default:
                    result.push(item * 1);
                    break;
            }
        });
        return result.reduce((total, num) => total + num);
    }
    

    相关文章

      网友评论

          本文标题:数据结构之"栈"

          本文链接:https://www.haomeiwen.com/subject/qertnqtx.html