题目描述
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"
解题思路
这个题目其实就是十进制转26进制, 我们可以使用 ascii码来做, 只用 'A' 加上对应的值, 就可以得到对应是字符, 每次计算时先 -1 是一个非常巧妙的方法: 因为我们是从 'A'开始加, 已经是 加1了 所以减去
示例代码
func convertToTitle(_ n: Int) -> String {
let A: Character = "A"
var temp = n
var result = ""
while temp != 0 {
temp -= 1
let remainder = UInt8(temp % 26)
let c = Character(UnicodeScalar(A.asciiValue! + remainder))
result = String(c) + result
temp = temp / 26
}
return result
}