本文共 1714 字,大约阅读时间需要 5 分钟。
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#include #include using namespace std;class Solution {public: string convertToTitle(int n) { if(n <= 0){ return ""; }//if vector 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< <<" "; } cout<
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(n % 26 + 'A')); n /= 26; }// return result; }};