168. Excel Sheet Column Title
https://leetcode.com/problems/excel-sheet-column-title/
Description
将十进制转为26进制。
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
...
Example 1:
Input: 1
Output: “A”
Example 2:
Input: 28
Output: “AB”
Example 3:
Input: 701
Output: “ZY”
Solutions
转换进制很简单,就是%
和/
啊。
问题1:
转换之后是数字,怎么把数字转成字母。
- 试了发现’A’的Unicode码是65,可以用强制类型转换
(char)(x+65)
将Unicode编码转为字母。 'A'+1
的结果是数字,可以直接加
问题2:
题目中给的是从1开始的,转进制用从0开始的比较方便。
Submissions
我的~
class Solution {
public String convertToTitle(int n) {
String res="";
while(n>0)
{
int a=(n-1)%26;
res=(char)(a+65)+res;
n=(n-1)/26;
}
return res;
}
}
答案的~
public class Solution {
public String convertToTitle(int n) {
StringBuilder result = new StringBuilder();
while(n>0){
n--;
result.insert(0, (char)('A' + n % 26));
n /= 26;
}
return result.toString();
}
}
Summary
StringBuilder的使用。