class Solution {
public:
char kc(int k, int sz) {
char rv;
// printf("Called kc(%d,%d)\n", k, sz);
if (k == 1) {
rv = 'a';
} else if (k <= sz/2) {
rv = kc(k, sz/2);
} else {
rv = kc(k-sz/2, sz);
if (rv == 'z') {
rv = 'a';
} else {
rv++;
}
}
// printf("kc(%d,%d) = %c\n", k, sz, rv);
return rv;
}
char kthCharacter(int k) {
int sz;
for (sz = 1; sz <= k; sz *= 2) ;
return kc(k, sz);
}
};
|