- 贪心算法
/**
*
* @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;
};