Excel Sheet Column Title

来源:互联网 发布:淘宝试用中心成功秘诀 编辑:程序博客网 时间:2024/05/16 13:00

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 
本题主要是循环提取个位数的思想,用取余来实现,但是鉴于取余所得余数周期是从0开始的,因此将n--提到前边,n--对后边的意义在于去除个位数上有z时对十位以上数影响。

优化前的程序:

public class Solution {    public String convertToTitle(int n) {    if(n <= 0){        throw new IllegalArgumentException("Input is not valid!");    }     StringBuilder sb = new StringBuilder();     while(n > 0){    char ch=',';    if(n%26==0){    ch=(char)(25+'A');    }else {ch=(char)(n%26-1+'A');}        n--;        n /= 26;        sb.append(ch);    }     sb.reverse();    return sb.toString();    }    }

优化后的程序:

public class Solution {    public String convertToTitle(int n) {        char[] result = new char[20];        int index = 20;        n--;        do {            result[--index] = (char) ('A' + n % 26);            n = n / 26 - 1;        } while (n >= 0);        return new String(result, index, 20 - index);    }}

0 0
原创粉丝点击