Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for [old] Digit Stack by mortonfox
"use strict";
function digitStack(commands){
var total = 0;
var stack = [];
for (var i = 0; i < commands.length; ++i) {
var cmd = commands[i];
switch (cmd) {
case 'PEEK':
if (stack.length) total += stack[stack.length - 1];
break;
case 'POP':
if (stack.length) total += stack.pop();
break;
default:
stack.push(parseInt(cmd.split(' ')[1], 10));
}
}
return total;
}
var assert = require('assert');
if (!global.is_checking) {
assert.equal(digitStack(["PUSH 3", "POP", "POP", "PUSH 4", "PEEK",
"PUSH 9", "PUSH 0", "PEEK", "POP", "PUSH 1", "PEEK"]),
8, "Example");
assert.equal(digitStack(["POP", "POP"]), 0, "pop, pop, zero");
assert.equal(digitStack(["PUSH 9", "PUSH 9", "POP"]), 9, "Push the button");
assert.equal(digitStack([]), 0, "Nothing");
console.log("Coding complete? Click 'Check' to review your tests and earn cool rewards!");
}
Sept. 30, 2016