diff options
Diffstat (limited to 'other/excel_sheet_column_title.cpp')
-rw-r--r-- | other/excel_sheet_column_title.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/other/excel_sheet_column_title.cpp b/other/excel_sheet_column_title.cpp new file mode 100644 index 0000000..3de395f --- /dev/null +++ b/other/excel_sheet_column_title.cpp @@ -0,0 +1,39 @@ +// 168. Excel Sheet Column Title +#include "leetcode.h" + +/* + * given an integer 'column_number', return its corresponding column title as it + * appears in an excel sheet. for example: A -> 1 B -> 2 C -> 3 + * ... + * Z -> 26 + * AA -> 27 + * AB -> 28 + * ... + */ + +class Solution { +public: + string convertToTitle(int n) { + if (n < 27) + return string(1, 'A' + (n - 1) % 26); + string ans = ""; + while (n > 0) { + if (!(n % 26)) { + ans += 'A' + 25; + n--; + } else { + ans += 'A' + n % 26 - 1; + } + n /= 26; + } + reverse(ans.begin(), ans.end()); + return ans; + } +}; + +int main() { + Solution obj; + cout << obj.convertToTitle(1) << endl; // expect: A + cout << obj.convertToTitle(28) << endl; // expect: AB + cout << obj.convertToTitle(701) << endl; // expect: ZY +} |