LeetCode 171. Excel 表列序号(swift)

2021-12-06 18:13:01 浏览数 (1)

题目

给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回该列名称对应的列序号。

例如, A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...

代码语言:javascript复制
示例 1:

输入: columnTitle = "A"
输出: 1
示例 2:

输入: columnTitle = "AB"
输出: 28
示例 3:

输入: columnTitle = "ZY"
输出: 701
示例 4:

输入: columnTitle = "FXSHRXW"
输出: 2147483647

提示:

1 <= columnTitle.length <= 7 columnTitle 仅由大写英文组成 columnTitle 在范围 ["A", "FXSHRXW"] 内

解题思路

代码语言:javascript复制
//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)")

0 人点赞