贪心算法,从最后向前填充构造字典序列最小值,字符串初始为n个'a',这样在保证了字符串长度,如果不预先从k中减去n个a,那么在我们计算过程中,有可能会生成小于n个字符的结果,处理起来比较麻烦。

class Solution {
public:
    //计算生成字典序最小字符串,贪心算法,从后面开始先使用最大z
    string getSmallestString(int n, int k) {
        string res(n,'a');
        k -= n;
        int i = n - 1;
        
        while(k > 0) {
            int fill = min(k,25);
            k -= 25;
            res[i--] += fill;
        }
        
        return res;
    }
};