Excel Equivalent of a Decimal Number

Posted: 19 Dec, 2020
Difficulty: Moderate

PROBLEM STATEMENT

Try Problem

Given a positive number 'N'. Your task is to find the Excel Equivalent of the number 'N'.

Note:

1. The Excel equivalent of 1 is "A", the Excel equivalent of 2 is "B" ……………, the Excel equivalent of 26 is "Z". 

2. The Excel equivalent of 27,28…,52 is "AA", "AB"…."AZ" respectively.

3. The Excel Equivalent of 53,54….78 is "BA", "BB"….."BZ".

4. The pattern shown above can be used to find the excel equivalent of any positive number.

5. There is only one Excel Equivalent for a given positive number.
Input format:
The first line of input contains an integer ‘T’ denoting the number of test cases.

The first and only line of each test case contains a number 'N' of which the Excel Equivalent is required to be found.
Output format:
For each test case, return the Excel equivalent of a given number in a separate line.
Note:
You don't need to print anything, it has already been taken care of. Just implement the given function.
Follow Up:
Can you solve this in logarithmic time and space complexity?
Constraints:
1 <= T <= 1000
1 <= N <= 10^15

Time limit: 1sec     
Approach 1

The idea is to generate all the Excel equivalents from 1 to ‘N’. The process of generating Excel equivalent of ‘N' from ‘N’ - 1 can be divided into two cases:

 

  1. The last character of Excel Equivalent of ‘N’ - 1 is not equal to “Z”, In this case, we can find the Excel equivalent of ‘N’ by incrementing the last character of ‘N’ - 1 by 1 and keeping the rest of the characters unchanged. For eg: “AA”->"AB" , “BCD”->"BCE" etc.
  2. The last character of Excel equivalent of 'N' - 1 is equal to “Z”, In this case, we have to find the first character from the right which is not equal to “Z” and increment it by 1 and set all the other characters on the right to “A”. If there is no such character in the string we will add an extra “A” to the string and set all the other characters also to “A”.
  3.  

Using the following approach we can generate the Excel Equivalent of 1,2… 'N' and then finally we will output the Excel Equivalent of ‘N’.

Try Problem