leetcode 168:Excel表列名称

题目:

leetcode 168:Excel表列名称

算法思想:先看对应关系,A对应1,然后字符串结果就是把数字累加起来,相当于这是一个26进制的数。需要注意的是26对应的是Z,如果n%26 == 0,则直接在结果中加Z,但是由于字符串是从单个字符A开始的,所以n/26后要减1。举个例子,假如输入的数是52,52%26==0,52/26==2,这个时候结果是AZ,而不是BZ,因为商的结果2要减一。

代码:

    string convertToTitle(int n) {
        string result = "";
        while(n != 0)
        {
            int tmp = n % 26;
            if(tmp == 0)
            {
                result = 'Z' + result;
                n = n / 26 - 1;
            }
            else
            {
                char c = 'A' + tmp - 1;
                result = c + result;
                n = n / 26;
            }
        }
        return result;
    }

 

上一篇:【Python】【demo实验6】【练习实例】【完全平方数相关】


下一篇:leetcode 算法题168 (简单040) Excel表列名称