题目
给你一个字符串 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 示例 4: 输入: columnTitle = "FXSHRXW" 输出: 2147483647
提示:
1 <= columnTitle.length <= 7 columnTitle 仅由大写英文组成 columnTitle 在范围 ["A", "FXSHRXW"] 内
解题思路
//import Foundation class Solution { func titleToNumber(_ columnTitle: String) -> Int { //比较迂回的方法 // var number = 0 // var strList = columnTitle.utf8CString // strList.popLast() // // 记录位数 // var count = 0 // for (_,value) in strList.enumerated().reversed() { // // 真实位数 // let num = Int(value - 64) // print(count) // // 每一位用【数值*26^位数】然后累积 // number = number + num * Int(pow(26,Double(count))) // count += 1 //// print(number) // } // return number //比较简洁的方法 var res = 0 for char in columnTitle { let num = Int(char.unicodeScalars.first!.value - 64) res = res * 26 + num print(res) } return res } } let columnTitle1 = "AAB" let columnTitle2 = "B" let res = Solution().titleToNumber(columnTitle1) print("res:\(res)")