標籤:
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
Credits:
Special thanks to @ifanchu for adding this problem and creating all test cases.
Hide Tags MathHide Similar Problems (E) Excel Sheet Column Number 分析:本質上是10進位到26進位的轉換,但是 由於下標從1開始而不是從0開始,因此要減一操作。 1 --》A26--》Z 先取出餘數,然後將其轉換成字元A~Z,然後n= (n-1)/26,將26進位的數右移一位,然後從新做判斷。。
#include <stdio.h>#include <stdlib.h>#include <iostream>#include <vector>#include <queue>#include <stack>#include <algorithm>using namespace std;void printArray(int *array, int size){ for(int i = 0; i < size; i++) cout << array[i]<< "\t" ; cout << endl;}void printVector(vector<int> array ){ for(int i = 0; i <array.size(); i++) cout << array[i]<< "\t" ; cout << endl;}class Solution { public: string convertToTitle(int n) { string str; int a = 0; while(n) { a = (n-1) % 26; str += char(a + ‘A‘); n = (n-1)/26; } reverse(str.begin(), str.end()); return str; }};#if 01 -> A2 -> B3 -> C...26 -> Z27 -> AA28 -> AB #endifint main(){ Solution sl; cout << sl.convertToTitle(1) <<endl; cout << sl.convertToTitle(100) <<endl; cout << sl.convertToTitle(1000) <<endl; cout << endl; return 0;}
[LeetCode] Excel Sheet Column Title