aboutsummaryrefslogtreecommitdiff
path: root/other/excel_sheet_column_title.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'other/excel_sheet_column_title.cpp')
-rw-r--r--other/excel_sheet_column_title.cpp39
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
+}