首页 > 其他 > 详细

Excel Sheet Column Title -- leetcode

时间:2015-06-23 21:42:46      阅读:236      评论:0      收藏:0      [点我收藏+]

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 


基本思路:

本题实质上,是将一个整数从10进制转换成26进制。

由于 ‘A‘对应的是1,而不是0,需要进行调整,即作减1操作。

class Solution {
public:
    string convertToTitle(int n) {
        stack<char> s;
        while (n) {
            --n;
            s.push('A'+ n % 26);
            n /= 26;
        }
        
        string ans;
        while (!s.empty()) {
            ans += s.top();
            s.pop();
        }
        return ans;
    }
};


直接在字符串前面插入,可以省掉栈:

class Solution {
public:
    string convertToTitle(int n) {
        string ans;
        while (n) {
            ans.insert(ans.begin(), 'A'+(n-1)%26);
            n = (n-1) / 26;
        }
        return ans;
    }
};


或者用递归来取代栈

class Solution {
public:
    string convertToTitle(int n) {
        return n ? convertToTitle((n-1)/26) + (char)('A' + (n-1)%26) : "";
    }
};




Excel Sheet Column Title -- leetcode

原文:http://blog.csdn.net/elton_xiao/article/details/46609127

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!