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
Because any_pos_int
mod 26
should return a number in the interval [0,
25]
, but what we want is a number in the interval [1,
26]
. Thus we have to shift the digit leftward by 1
which
means--n
.
/********************************* * 日期:2015-01-29 * 作者:SJF0115 * 题目: 168.Excel Sheet Column Title * 网址:https://oj.leetcode.com/problems/excel-sheet-column-title/ * 结果:AC * 来源:LeetCode * 博客: **********************************/ #include <iostream> #include <vector> #include <string> using namespace std; class Solution { public: string convertToTitle(int n) { if(n <= 0){ return ""; }//if vector<int> vec; --n; // 除26取余倒排序 while(n >= 0){ vec.push_back(n % 26); n /= 26; --n; }// // 转换 string result; int len = vec.size(); for(int i = 0;i < len;++i){ result.insert(result.begin(),vec[i]+'A'); }//for return result; } }; int main(){ Solution solution; for(int i = 500;i < 800;++i){ string result = solution.convertToTitle(i); // 输出 cout<<result<<" "; } cout<<endl; return 0; }
class Solution { public: string convertToTitle(int n) { if(n <= 0){ return ""; }//if string result; // 除26取余倒排序 while(n > 0){ n --; result.insert(result.begin(),static_cast<char>(n % 26 + 'A')); n /= 26; }// return result; } };
[LeetCode]168.Excel Sheet Column Title
原文地址:http://blog.csdn.net/sunnyyoona/article/details/43271991