算法编程(十三):Excel 表列序号

简介: 算法编程(十三):Excel 表列序号

写在前面


今天我们继续来解算法题,一看题目就很熟悉,前两天刚做了《Excel表列名称》,是通过数值,最后要转成字母名称。

今天的这道题,是要通过字母串转成相应的数值。

有些不一样,一起来看一下吧。

image.png

题目解读


要解答当前题,首先要看一下《Excel表列名称》:这道题是通过数值来转换成序号名称,原理上是利用了进制之间的转换方式。

那么我们当前这道题要如何解决呢?

自然是要通过反向操作来解决这个问题了。

我的思路大概是这样,大家可以自行参考一下。

首先是要将每一个字符转换成数值,当然了要从最后一位字符开始算起。

然后将转换后的字符进行相加,然后利用一个中间值来衡量每一位所要乘上的倍数,比如11这个数值,是一个十进制的数值。

在个位时,是1,倍数也是1;在十位时,也是1,倍数变为了10。

在本道题上来说,也是一样的,我们要将倍数当成中间值保存下来才行。

有了这些思路,我们就可以把具体的代码写出来了。

代码实现


代码如下所示,很简洁,并不复杂;大家一看就能明白了,有问题可以随时评论区。

class Solution {
    public int titleToNumber(String columnTitle) {
        int n = 0;
        int z = 1;
        for (int i = columnTitle.length() - 1; i >= 0; i--) {
            int k = columnTitle.charAt(i) - 'A' + 1;
            n += k * z;
            z *= 26;
        }
        return n; 
    }
}

执行结果:


image.png

其他思路


这个我也没有什么其他思路了,主要还是进制的相互转换。

总结


今天这道题,主要是考察进制规则如何相互进行转换,大家学会了吗?


相关文章
|
25天前
|
Java API Apache
Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
【10月更文挑战第29天】Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
105 5
|
20天前
|
算法 Python
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果;贪心算法在每一步选择局部最优解,追求全局最优;动态规划通过保存子问题的解,避免重复计算,确保全局最优。这三种算法各具特色,适用于不同类型的问题,合理选择能显著提升编程效率。
36 2
|
2月前
|
存储 缓存 分布式计算
数据结构与算法学习一:学习前的准备,数据结构的分类,数据结构与算法的关系,实际编程中遇到的问题,几个经典算法问题
这篇文章是关于数据结构与算法的学习指南,涵盖了数据结构的分类、数据结构与算法的关系、实际编程中遇到的问题以及几个经典的算法面试题。
36 0
数据结构与算法学习一:学习前的准备,数据结构的分类,数据结构与算法的关系,实际编程中遇到的问题,几个经典算法问题
|
2月前
|
IDE 开发工具 数据安全/隐私保护
Python编程--实现用户注册信息写入excel文件
Python编程--实现用户注册信息写入excel文件
|
2月前
|
算法 Python
Python算法编程:冒泡排序、选择排序、快速排序
Python算法编程:冒泡排序、选择排序、快速排序
|
2月前
|
iOS开发 MacOS Python
Python编程-macOS系统数学符号快捷键录入并生成csv文件转换为excel文件
Python编程-macOS系统数学符号快捷键录入并生成csv文件转换为excel文件
|
3月前
|
数据采集 数据库
在EXCEL中VBA编程检验身份证号码有效性
在EXCEL中VBA编程检验身份证号码有效性
|
4月前
|
存储 算法 搜索推荐
编程之旅中的算法启示
【8月更文挑战第31天】在编程世界的迷宫里,算法是那把钥匙,它不仅能解锁问题的答案,还能引领我们深入理解计算机科学的灵魂。本文将通过一次个人的技术感悟旅程,探索算法的奥秘,分享如何通过实践和思考来提升编程技能,以及这一过程如何启示我们更深层次地认识技术与生活的交织。
|
5月前
|
存储 算法 搜索推荐
告别低效编程!Python算法设计与分析中,时间复杂度与空间复杂度的智慧抉择!
【7月更文挑战第22天】在编程中,时间复杂度和空间复杂度是评估算法效率的关键。时间复杂度衡量执行时间随数据量增加的趋势,空间复杂度关注算法所需的内存。在实际应用中,开发者需权衡两者,根据场景选择合适算法,如快速排序(平均O(n log n),最坏O(n^2),空间复杂度O(log n)至O(n))适合大规模数据,而归并排序(稳定O(n log n),空间复杂度O(n))在内存受限或稳定性要求高时更有利。通过优化,如改进基准选择或减少复制,可平衡这两者。理解并智慧地选择算法是提升代码效率的关键。
71 1
|
4月前
|
存储 算法
【C算法】编程初学者入门训练140道(1~20)
【C算法】编程初学者入门训练140道(1~20)