首页 > 代码库 > LeetCode(168) Excel Sheet Column Title
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(); }
LeetCode(168) Excel Sheet Column Title
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。