Skip to content

Latest commit

 

History

History
41 lines (32 loc) · 947 Bytes

1663. 具有给定数值的最小字符串.md

File metadata and controls

41 lines (32 loc) · 947 Bytes
  • 贪心算法
/**
 *
 * @param {number} n
 * @param {number} k
 * @return {*}  {string}
 */
function getSmallestString(n: number, k: number): string {

    let used: number = 0,
        result: string = '';

    while (used < n) {

        // 后面如果全部放 z 的话,需要几个位置呢?
        const need: number = Math.ceil(k / 26);

        if (n - used > need) { // 位置还很多,可以直接放最小的 a
            result += 'a';
            k--;
        } else {
            if (k % 26 === 0) { // 刚好可以放一个 z
                result += 'z';
                k -= 26;
            } else { // 不能直接放 z
                result += String.fromCharCode(k % 26 + 96);
                k -= k % 26;
            }
        }

        ++used;
    }

    return result;
};