[Simple and readable] - O(N) TypeScript/JavaScript
\nfunction getSmallestString(n: number, k: number): string {\n    const alphabet = [\'\',\'a\',\'b\',\'c\',\'d\',\'e\',\'f\',\'g\',\'h\',\'i\',\'j\',\'k\',\'l\'
```\nfunction getSmallestString(n: number, k: number): string {\n    const alphabet = [\'\',\'a\',\'b\',\'c\',\'d\',\'e\',\'f\',\'g\',\'h\',\'i\',\'j\',\'k\',\'l\',\'m\',\'n\',\'o\',\'p\',\'q\',\'r\',\'s\',\'t\',\'u\',\'v\',\'w\',\'x\',\'y\',\'z\']\n    let sum = 0\n    let s = \'\'\n    \n    for (let i = n - 1; i >= 0; i--) {\n        let target = (k - i) - sum\n        if (target > 26) target = 26\n        s = alphabet[target] + s\n        sum += target\n    }\n\n    return s\n};\n```
['TypeScript', 'JavaScript']