2015.1.23 17:20
Given a positive integer, return its corresponding column title as appear in an Excel sheet.
For example:
1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> AB
Solution:
The code below is self-explanatory. It is a piecewise function.
Total time is O(log(n)), only in that the logarithm base here is 26.
Accepted code:
1 // 1CE, 4WA, 1AC, so careless 2 class Solution { 3 public: 4 string convertToTitle(int n) { 5 long long int n1 = n; 6 long long int base = 26; 7 int len = 1; 8 9 --n1; 10 while (n1 >= base) { 11 n1 -= base; 12 base *= 26; 13 ++len; 14 } 15 16 string s; 17 18 base /= 26; 19 while (base > 0) { 20 s.push_back(n1 / base + 'A'); 21 n1 %= base; 22 base /= 26; 23 } 24 25 return s; 26 } 27 };