classSolution: defgetSmallestString(self, n: int, k: int) -> str: s = [] for i inrange(1, n + 1): lower = max(1, k - (n - i) * 26) k -= lower s.append(ascii_lowercase[lower - 1]) return''.join(s)
[sol1-C++]
1 2 3 4 5 6 7 8 9 10 11 12
classSolution { public: string getSmallestString(int n, int k){ string ans; for (int i = 1; i <= n; i++) { int lower = max(1, k - (n - i) * 26); k -= lower; ans.push_back('a' + lower - 1); } return ans; } };
[sol1-Java]
1 2 3 4 5 6 7 8 9 10 11
classSolution { public String getSmallestString(int n, int k) { StringBuilderans=newStringBuilder(); for (inti=1; i <= n; i++) { intlower= Math.max(1, k - (n - i) * 26); k -= lower; ans.append((char) ('a' + lower - 1)); } return ans.toString(); } }
[sol1-C#]
1 2 3 4 5 6 7 8 9 10 11
publicclassSolution { publicstringGetSmallestString(int n, int k) { StringBuilder ans = new StringBuilder(); for (int i = 1; i <= n; i++) { int lower = Math.Max(1, k - (n - i) * 26); k -= lower; ans.Append((char) ('a' + lower - 1)); } return ans.ToString(); } }
[sol1-C]
1 2 3 4 5 6 7 8 9 10 11 12 13 14
staticinlineintmax(int a, int b) { return a > b ? a : b; }
char * getSmallestString(int n, int k) { char *ans = (char *)malloc(sizeof(char) * (n + 1)); for (int i = 1; i <= n; i++) { int lower = max(1, k - (n - i) * 26); k -= lower; ans[i - 1] = 'a' + lower - 1; } ans[n] = '\0'; return ans; }
[sol1-JavaScript]
1 2 3 4 5 6 7 8 9
var getSmallestString = function(n, k) { let ans = ''; for (let i = 1; i <= n; i++) { const lower = Math.max(1, k - (n - i) * 26); k -= lower; ans += String.fromCharCode('a'.charCodeAt() + lower - 1); } return ans; };
[sol1-Golang]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
funcgetSmallestString(n, k int)string { s := []byte{} for i := 1; i <= n; i++ { lower := max(1, k-(n-i)*26) k -= lower s = append(s, 'a'+byte(lower)-1) } returnstring(s) }
funcmax(a, b int)int { if b > a { return b } return a }