【Leetcode】Excel Sheet Column Title

题目链接:点击打开链接

题目:

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 

思路:

类似十进制转化为二十六进制,要注意如果n可以被26除尽,最后一位没有0表示最小只有A,这里用Z表示。

所以要考虑两种情况,如果可以被26除尽,最后一位固定为Z,(n-26)/26考虑前面位数的转化;如果不能被除尽,直接考虑所有位数的转化。

算法:

	public String convert(int n) {//将数字转化为字母
		String result = "";
		while (n % 26 != 0) {
			result = (char) (n % 26 + 64) + result;
			n = n / 26;
		}
		if (n / 26 != 0) {
			result = (char) (n + 64) + result;
		}
		return result;
	}

	public String convertToTitle(int n) {
		String result = "";
		if (n <= 26) {
			return String.valueOf((char) (n + 64));
		}
		if (n % 26 == 0) {//如果可以被26除的尽的时候最后一位为Z,(n-26)/26因为最后一位固定为Z,考虑前面的位的转化
			result = convert((n-26)/26) + 'Z';
			return result;
		} else {
			result = convert(n);
		}
		return result;
	}


你可能感兴趣的:(【Leetcode】Excel Sheet Column Title)