LeetCode 171. Excel 表列序号(swift)

作者: freesan44 | 来源:发表于2021-08-09 07:25 被阅读0次

    题目

    给你一个字符串 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)")
    

    相关文章

      网友评论

        本文标题:LeetCode 171. Excel 表列序号(swift)

        本文链接:https://www.haomeiwen.com/subject/afcavltx.html