## Excel Sheet Column Title

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

### Analysis:

This problem is not difficult but needs more attention on the format.General cases are straightforward:

27 -> AA 27/26 = 1, 27%26 = 1, 1->A, 1->A thus AA

3 -> C 3/26 = 0, 3%26 = C 0-> , 3->C thus C

53 -> BA 53/26 = 2, 53%26 = 1 2->B, 1->A thus BA

Some special cases we need to handle:

26 -> Z 26/26 = 0, 26%26 = 0

52 -> AZ 26/26 = 2, 26%26 = 0

**When n%26 == 0, the last digit must be filled with a 'Z', therefore n in the next step must subtract this 'Z' (which is 26) and continue.**

### Code(C++):

class Solution { public: string convertToTitle(int n) { string res = ""; while (n>0){ if (n%26==0){ res = 'Z' + res; n = n/26 -1; }else{ res = char(n%26 -1 + 'A') + res; n = n/26; } } return res; } };

### Code(Python):

class Solution: # @param {integer} n # @return {string} def convertToTitle(self, n): res = '' while n > 0: if n%26 == 0: res = 'Z' + res n = n/26 -1 else: res = chr(ord('A') + n%26 - 1) + res n = n/26 return res;

This comment has been removed by the author.

ReplyDelete