2665. Counter II

Difficulty:
Related Topics:
    Similar Questions:

    Problem

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

    The three functions are:

    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:

    Solution (Javascript)

    /**
     * @param {integer} init
     * @return { increment: Function, decrement: Function, reset: Function }
     */
    var createCounter = function (init) {
      let presentCount = init;
    
      function increment() {
        return ++presentCount;
      }
    
      function decrement() {
        return --presentCount;
      }
    
      function reset() {
        return (presentCount = init);
      }
    
      return { increment, decrement, reset };
    };
    
    /**
     * const counter = createCounter(5)
     * counter.increment(); // 6
     * counter.reset(); // 5
     * counter.decrement(); // 4
     */
    

    Explain:

    nope.

    Complexity: