解决Next Greater Number问题

  • 使用取模来实现循环

    问题:

    1.

    图片.png

    2.天气温度

    图片.png

    3.循环数组

    图片.png

4.计算器相关

图片.png
图片.png

  1. function calculate(s){
  2. let list = s.split('');
  3. function helper(list){
  4. let stack=[],num=0,sign='+';
  5. while(list.length){
  6. const c = list.pop();
  7. if(!isNaN(c)){
  8. num = num*10+(c-'0');
  9. }
  10. if(c==='('){
  11. num = helper(list)
  12. }
  13. if(c!===' '&&(c==='+' || c==='-' || c==='*' || c==='/') || !list.length){
  14. if(sign==='+'){
  15. stack.push(num)
  16. }else if(sign==='-'){
  17. stack.push(-num)
  18. }else if(sign==='*'){
  19. const top = stack.pop();
  20. const temp = top*num;
  21. stack.push(temp)
  22. }else if(sign==='/'){
  23. const top = stack.pop();
  24. const temp = Math.floor(top/num);
  25. stack.push(temp)
  26. }
  27. sign = c;
  28. num=0;
  29. }
  30. if(c===')'){
  31. break;
  32. }
  33. }
  34. return stack.reduce((pre,next)=>pre+next,0);
  35. }
  36. return helper(list);
  37. }