JSFiddle - React, Tailwind, and code Playground

Count and Say weirdly difficult problem

by Yurii Predborskyi

JavaScript

/**
 * @param {number} n
 * @return {string}
 */
var countAndSay = function(n) {
    function countRepeats(word) {
        let count = 0, i = 0;
        let number = word[0];
        let result = '';
        for (i = 0; i < word.length; i++) {
            if (word[i] === number) {
                count++;
            } else {
                result += count + word[i-1];
                count = 1;
                number = word[i];
            }
        }
        return result + count + word[i-1];
    }

    let lastResult = '1';
    for (let i = 1; i < n; i++) {
        lastResult = countRepeats(lastResult);
    }

    return lastResult;
};