Description#
Given an integer columnNumber
, return its corresponding column title as it appears in an Excel sheet.
For example:
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...
Example 1:
Input: columnNumber = 1
Output: "A"
Example 2:
Input: columnNumber = 28
Output: "AB"
Example 3:
Input: columnNumber = 701
Output: "ZY"
Constraints:
1 <= columnNumber <= 231 - 1
Solutions#
Solution 1#
1
2
3
4
5
6
7
8
| class Solution:
def convertToTitle(self, columnNumber: int) -> str:
res = []
while columnNumber:
columnNumber -= 1
res.append(chr(ord('A') + columnNumber % 26))
columnNumber //= 26
return ''.join(res[::-1])
|
1
2
3
4
5
6
7
8
9
10
11
| class Solution {
public String convertToTitle(int columnNumber) {
StringBuilder res = new StringBuilder();
while (columnNumber != 0) {
--columnNumber;
res.append((char) ('A' + columnNumber % 26));
columnNumber /= 26;
}
return res.reverse().toString();
}
}
|
1
2
3
4
5
6
7
8
9
| func convertToTitle(columnNumber int) string {
res := []rune{}
for columnNumber != 0 {
columnNumber -= 1
res = append([]rune{rune(columnNumber%26 + int('A'))}, res...)
columnNumber /= 26
}
return string(res)
}
|
1
2
3
4
5
6
7
8
9
10
| function convertToTitle(columnNumber: number): string {
let res: string[] = [];
while (columnNumber > 0) {
--columnNumber;
let num: number = columnNumber % 26;
res.unshift(String.fromCharCode(num + 65));
columnNumber = Math.floor(columnNumber / 26);
}
return res.join('');
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| impl Solution {
#[allow(dead_code)]
pub fn convert_to_title(column_number: i32) -> String {
let mut ret = String::from("");
let mut column_number = column_number;
while column_number > 0 {
if column_number <= 26 {
ret.push((('A' as u8) + (column_number as u8) - 1) as char);
break;
} else {
let mut left = column_number % 26;
left = if left == 0 { 26 } else { left };
ret.push((('A' as u8) + (left as u8) - 1) as char);
column_number = (column_number - 1) / 26;
}
}
ret.chars().rev().collect()
}
}
|
1
2
3
4
5
6
7
8
9
10
11
| public class Solution {
public string ConvertToTitle(int columnNumber) {
StringBuilder res = new StringBuilder();
while (columnNumber != 0) {
--columnNumber;
res.Append((char) ('A' + columnNumber % 26));
columnNumber /= 26;
}
return new string(res.ToString().Reverse().ToArray());
}
}
|