[分析]
十进制转26进制,需要注意的是26进制是以1为最小数的。
思路1写了好久,放在这儿用于警示自己还需要更多练习。
十进制转26进制,需要注意的是26进制是以1为最小数的。
思路1写了好久,放在这儿用于警示自己还需要更多练习。
public class Solution {
// Method 2
// https://leetcode.com/discuss/19047/my-1-lines-code-in-java-c-and-python
// https://leetcode.com/discuss/34526/share-my-java-solusion
// Using the mod operator gives numbers in range [0, 25].
// That's why he used (n-1) so he's converting n from 1 based to 0 based.
public String convertToTitle(int n) {
String res = "";
while (n > 0) {
res = (char)('A' + (n - 1) % 26) + res;
n = (n - 1) / 26;
}
return res;
}
private static char[] map = new char[27];
static {
for (int i = 1;i <= 26; i++) {
map[i] = (char)('A' + i - 1);
}
}
// Method 1
public String convertToTitle1(int n) {
StringBuilder res = new StringBuilder();
while (n > 0) {
int mod = n % 26;
if (mod == 0) {
res.append('Z');
n -= 26;
} else {
res.append(map[mod]);
}
n /= 26;
}
return res.reverse().toString();
}
}
本文介绍了一种将十进制数转换为26进制数的方法,使用了两种不同的实现方式:一种利用取余操作得到0到25范围内的数,另一种则通过构造字符串并反转来完成转换。这两种方法都适用于将正整数转换成由A到Z表示的26进制形式。
258

被折叠的 条评论
为什么被折叠?



