題目描述
給你一個字符串 columnTitle ,表示 Excel 表格中的列名稱榨了。返回 該列名稱對應(yīng)的列序號 。
例如:
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...
示例 1:
輸入: columnTitle = "A"
輸出: 1
示例 2:
輸入: columnTitle = "AB"
輸出: 28
示例 3:
輸入: columnTitle = "ZY"
輸出: 701
題解
思路:進制轉(zhuǎn)化
Excel 表的列名稱由大寫字母組成矮瘟,大寫字母共有26 個姑廉,因此列名稱的表示實質(zhì)是26 進制,需要將26 進制轉(zhuǎn)換成十進制
static public func titleToNumber(_ columnTitle: String) -> Int {
let cStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
let cArray = Array(cStr)
var dict:[Character:Int] = [Character:Int]()
for i in 0..<cArray.count {
dict[cArray[i]] = i+1
}
let titleArray = Array(columnTitle)
var ans = 0
for i in 0..<titleArray.count {
ans = 26*ans + (dict[titleArray[i]] ?? 0)
}
return ans
}
參考:https://leetcode-cn.com/problems/excel-sheet-column-number