• LeetCode(168) Excel Sheet Column Title


    1 题目:

    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 

    2 分析:

    本质上相当于把十进制转化为26进制,但是又有一些小区别,如 十进制10有两位,二进制2有两位'10',而26进制26为'Z',只有一位。十进制、二进制都从0开始,而这个是从1开始。

    做了半天做不出来,总是有问题,可能数学功底不行吧- -。然后参考了http://blog.csdn.net/u012162613/article/details/42059591,发现是能够整除时,没处理好,整除时,该位直接设为'Z',然后自减一就能满足要求了。

    3 代码

        public String convertToTitle(int n){    
            final String letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
            final int LETTER_NUMBER = 26;    
            
            StringBuffer sb = new StringBuffer();
            while(n != 0){
                if( n % LETTER_NUMBER == 0){
                    // 26的整数倍,直接取'Z',若不减一,则上一位会多一,如26变为AZ,52变为BZ,减一后恰到好处。
                    sb.append(letters.charAt(LETTER_NUMBER - 1));
                    n--;
                }else {
                    sb.append(letters.charAt(n % LETTER_NUMBER - 1));
                }
                n = n / LETTER_NUMBER;
            }    
            return sb.reverse().toString();
        }
  • 相关阅读:
    【python ----集合练习】
    【python ---字典练习】索引 增删改 嵌套
    词频统计
    枚举
    【python--集合】增删改 交集 差集 并集 反交集 子集和超集
    迭代器和迭代对象 生成器 推导式
    tuple 元组
    【python--字典】 字典的拆包
    Python -- 函数
    Python -- 文件的copy以及读写
  • 原文地址:https://www.cnblogs.com/lingtingvfengsheng/p/4182818.html
Copyright © 2020-2023  润新知