思路

没啥好说的——栈的最基本理解
js的栈实现是利用Array的push和pop……

  1. function calPoints(ops: string[]): number {
  2. let sta: Array<number> = []
  3. ops.forEach((data: string) => {
  4. switch (data) {
  5. case '+':
  6. sta.push(sta[sta.length - 1] + sta[sta.length - 2])
  7. break
  8. case 'D':
  9. sta.push(sta[sta.length - 1] * 2)
  10. break
  11. case 'C':
  12. sta.pop()
  13. break
  14. default:
  15. sta.push(Number(data))
  16. }
  17. })
  18. return sta.reduce((result: number, index: number) => {
  19. return result + index
  20. })
  21. }
  22. console.log(calPoints(['5', '-2', '4', 'C', 'D', '9', '+', '+']))