前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode 171. Excel 表列序号(swift)

LeetCode 171. Excel 表列序号(swift)

作者头像
freesan44
发布2021-12-06 18:13:01
4450
发布2021-12-06 18:13:01
举报
文章被收录于专栏:freesan44

题目

给你一个字符串 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)")
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/8/9 上午,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目
  • 解题思路
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档