题目描述:
说明:
示例 1:
示例 2:
示例 3:
示例 4:
思路:
代码实现:
class Solution {
public String convertToTitle(int cn) {
StringBuilder sb = new StringBuilder();
while (cn > 0) {
int mod = cn % 26;
char cur;
if (mod == 0) {
cur = 'Z';
cn = --cn / 26;
} else {
cur = (char)('A' + (mod - 1));
cn = cn / 26;
}
sb.append(cur);
}
sb.reverse();
return sb.toString();
}
}
class Solution {
String[] arr =
new String[]{"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"};
int num = 0;
public String convertToTitle(int columnNumber) {
num = columnNumber;
if (columnNumber < 27) {
return arr[columnNumber];
}
return bfs();
}
public String bfs() {
int index = 26;
Queue<String> queue = new LinkedList();
for (String str : arr) {
queue.offer(str);
}
while(!queue.isEmpty()) {
String poll = queue.poll();
for (String str : arr) {
String copy = poll + str;
queue.offer(copy);
index++;
if (index == num) return copy;
}
}
return "";
}
}