Excel Sheet Column Title

来源:互联网 发布:钉钉软件的优缺点 编辑:程序博客网 时间:2024/04/29 12:34

Given a positive integer, return its corresponding column title as appear in an Excel sheet.

For example:

1 -> A2 -> B3 -> C...26 -> Z27 -> AA28 -> AB 

思路: 十进制转换二十六进制的问题,但是这里的二十六进制不是0-25而是1-26,如果不做任何改变还是和以前一样的进制转换算法,就可能出现比如52=2*26^1,得出来的结果为B0(而实际上52->AZ),但是是没有0这个字符的,那么每次让n-1,然后得到(n-1)/26的余数(n-1)%26,然后由于减了1取余,那么通过余数转换为二十六进制字符的时候要加1,如果不用(n-1)%26,转换字符ch=(char) (‘A’+r-1),由于n减了1再取余,当前位转换为二十六进制的字符的时候就要加1,即ch=(char) (‘A’+r)。这样的做法可以避免十进制的数是26的倍数的时候,出现的转换错误。

public class Solution {    public String convertToTitle(int n) {      if(n<1) return "";            int r=0;            String res="";            while(n>0)            {                n--;                r=n%26;                char ch=(char) ('A'+r);                res=ch+res;                n=n/26;            }            return res;}}
0 0
原创粉丝点击