【Swift】LeedCode Excel 表列序号
由于各大平台的算法题的解法很少有Swift的版本,小编这边将会出个专辑为手撕LeetCode算法题。新手撕算法。请包涵!!!
给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。
例如:
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...
示例 1:
输入: columnTitle = "A"
输出: 1
示例 2:
输入: columnTitle = "AB"
输出: 28
示例 3:
输入: columnTitle = "ZY"
输出: 701
提示:
1 <= columnTitle.length <= 7
columnTitle 仅由大写英文组成
columnTitle 在范围 ["A", "FXSHRXW"] 内
Swift解法如下:
class Solution {
func titleToNumber(_ columnTitle: String) -> Int {
var num = 0
for index in 0..<columnTitle.count{
//返回值 = 之前的字符的ASCII-64 也就是 相当于A=1 B=2...
//例如AB字符串 就是 1*26+ 2
//例如ABC字符串 就是 1*26*26 + 2 * 26 + 3
//例如BAC字符串 就是 2*26*26 + 1 *26 + 3
num = num * 26 + Int(columnTitle.character(at: index) - 64)
}
return num
}
}