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)")


目录
相关文章
|
7月前
|
存储 算法 数据挖掘
深入解析力扣168题:Excel表列名称(进制转换法详解及模拟面试问答)
深入解析力扣168题:Excel表列名称(进制转换法详解及模拟面试问答)
|
7月前
|
算法 数据挖掘 大数据
深入解析力扣171题:Excel表列序号(进制转换法详解及模拟面试问答)
深入解析力扣171题:Excel表列序号(进制转换法详解及模拟面试问答)
|
8月前
【力扣】168. Excel表列名称、171. Excel 表列序号
【力扣】168. Excel表列名称、171. Excel 表列序号
118 1
|
8月前
|
Java 算法 Go
Java每日一练(20230330) Excel表列序号、最大数、颜色分类
Java每日一练(20230330) Excel表列序号、最大数、颜色分类
57 0
Java每日一练(20230330) Excel表列序号、最大数、颜色分类
|
8月前
|
Java
|
4月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
5月前
|
Python
【Leetcode刷题Python】剑指 Offer 32 - III. 从上到下打印二叉树 III
本文介绍了两种Python实现方法,用于按照之字形顺序打印二叉树的层次遍历结果,实现了在奇数层正序、偶数层反序打印节点的功能。
65 6
|
5月前
|
搜索推荐 索引 Python
【Leetcode刷题Python】牛客. 数组中未出现的最小正整数
本文介绍了牛客网题目"数组中未出现的最小正整数"的解法,提供了一种满足O(n)时间复杂度和O(1)空间复杂度要求的原地排序算法,并给出了Python实现代码。
133 2
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
280页PDF,全方位评估OpenAI o1,Leetcode刷题准确率竟这么高
【10月更文挑战第24天】近年来,OpenAI的o1模型在大型语言模型(LLMs)中脱颖而出,展现出卓越的推理能力和知识整合能力。基于Transformer架构,o1模型采用了链式思维和强化学习等先进技术,显著提升了其在编程竞赛、医学影像报告生成、数学问题解决、自然语言推理和芯片设计等领域的表现。本文将全面评估o1模型的性能及其对AI研究和应用的潜在影响。
57 1
|
4月前
|
数据采集 负载均衡 安全
LeetCode刷题 多线程编程九则 | 1188. 设计有限阻塞队列 1242. 多线程网页爬虫 1279. 红绿灯路口
本文提供了多个多线程编程问题的解决方案,包括设计有限阻塞队列、多线程网页爬虫、红绿灯路口等,每个问题都给出了至少一种实现方法,涵盖了互斥锁、条件变量、信号量等线程同步机制的使用。
LeetCode刷题 多线程编程九则 | 1188. 设计有限阻塞队列 1242. 多线程网页爬虫 1279. 红绿灯路口

相关课程

更多