LeetCode 171. Excel 表列序号(swift)

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

题目


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


目录
相关文章
|
6天前
|
C++
Excel 表列序号(C++)
Excel 表列序号(C++)
26 0
|
6天前
leetcode-1331:数组序号转换
leetcode-1331:数组序号转换
35 0
|
6天前
【力扣】168. Excel表列名称、171. Excel 表列序号
【力扣】168. Excel表列名称、171. Excel 表列序号
|
6天前
|
Java
|
6天前
|
Java 算法 Go
Java每日一练(20230330) Excel表列序号、最大数、颜色分类
Java每日一练(20230330) Excel表列序号、最大数、颜色分类
32 0
Java每日一练(20230330) Excel表列序号、最大数、颜色分类
|
6天前
|
算法 C++
【刷题】Leetcode 1609.奇偶树
这道题是我目前做过最难的题,虽然没有一遍做出来,但是参考大佬的代码,慢慢啃的感觉的真的很好。刷题继续!!!!!!
9 0
|
6天前
|
算法 索引
【刷题】滑动窗口精通 — Leetcode 30. 串联所有单词的子串 | Leetcode 76. 最小覆盖子串
经过这两道题目的书写,相信大家一定深刻认识到了滑动窗口的使用方法!!! 下面请大家继续刷题吧!!!
13 0
|
6天前
|
算法
【刷题】 leetcode 面试题 08.05.递归乘法
递归算法是一种在计算机科学和数学中广泛应用的解决问题的方法,其基本思想是利用问题的自我相似性,即将一个大问题分解为一个或多个相同或相似的小问题来解决。递归算法的核心在于函数(或过程)能够直接或间接地调用自身来求解问题的不同部分,直到达到基本情况(也称为基础案例或终止条件),这时可以直接得出答案而不必再进行递归调用。
25 4
【刷题】 leetcode 面试题 08.05.递归乘法
|
6天前
|
存储 算法 安全
【刷题】 leetcode 面试题 01.06 字符串压缩
来看效果: 非常好!!!过啦!!!
27 5
【刷题】 leetcode 面试题 01.06 字符串压缩

热门文章

最新文章