Friday, January 10, 2025

2665. Counter II @LeetCode

 Write a function createCounter. It should accept an initial integer init. It should return an object with three functions.

The three functions are:

  • increment() increases the current value by 1 and then returns it.
  • decrement() reduces the current value by 1 and then returns it.
  • reset() sets the current value to init and then returns it.

 

Example 1:

Input: init = 5, calls = ["increment","reset","decrement"]
Output: [6,5,4]
Explanation:
const counter = createCounter(5);
counter.increment(); // 6
counter.reset(); // 5
counter.decrement(); // 4

Example 2:

Input: init = 0, calls = ["increment","increment","decrement","reset","reset"]
Output: [1,2,1,0,0]
Explanation:
const counter = createCounter(0);
counter.increment(); // 1
counter.increment(); // 2
counter.decrement(); // 1
counter.reset(); // 0
counter.reset(); // 0

 

Constraints:

  • -1000 <= init <= 1000
  • 0 <= calls.length <= 1000
  • calls[i] is one of "increment", "decrement" and "reset"

Code:

  1. /**
  2. * @param {integer} init
  3. * @return { increment: Function, decrement: Function, reset: Function }
  4. */
  5. var createCounter = function(init) {
  6. // let reset = init;
  7. let num = init;
  8. return {
  9. increment: function(){
  10. return ++num;
  11. },

  12. decrement: function(){
  13. return --num;
  14. },

  15. reset: function(){
  16. return (num = init);
  17. },
  18. }

  19. };

  20. /**
  21. * const counter = createCounter(5)
  22. * counter.increment(); // 6
  23. * counter.reset(); // 5
  24. * counter.decrement(); // 4
  25. */


No comments:

Post a Comment

@LeetCode Rewind @2024