算法编程(十三):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

其他思路


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

总结


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


相关文章
|
3月前
|
算法 数据安全/隐私保护
火山中文编程 -- MD5算法和SHA算法
火山中文编程 -- MD5算法和SHA算法
19 0
火山中文编程 -- MD5算法和SHA算法
|
3月前
|
机器学习/深度学习 算法 C语言
【编码狂想】深度探索C++编程之旅:“数组、字符串、函数与KMP算法解密“
【编码狂想】深度探索C++编程之旅:“数组、字符串、函数与KMP算法解密“
73 0
|
15天前
【力扣】168. Excel表列名称、171. Excel 表列序号
【力扣】168. Excel表列名称、171. Excel 表列序号
|
23天前
|
开发工具
如何使用 Excel VBA 编程,点击按钮后跳转到有数据填充的最末一行
如何使用 Excel VBA 编程,点击按钮后跳转到有数据填充的最末一行
16 2
|
2月前
|
存储 算法 JavaScript
Java入门高频考查算法逻辑基础知识3-编程篇(超详细18题1.8万字参考编程实现)
解决这类问题时,建议采取下面的步骤: 理解数学原理:确保你懂得基本的数学公式和法则,这对于制定解决方案至关重要。 优化算法:了解时间复杂度和空间复杂度,并寻找优化的机会。特别注意避免不必要的重复计算。 代码实践:多编写实践代码,并确保你的代码是高效、清晰且稳健的。 错误检查和测试:要为你的代码编写测试案例,测试标准的、边缘情况以及异常输入。 进行复杂问题简化:面对复杂的问题时,先尝试简化问题,然后逐步分析和解决。 沟通和解释:在编写代码的时候清晰地沟通你的思路,不仅要写出正确的代码,还要能向面试官解释你的
33 0
|
2月前
|
存储 算法 JavaScript
【C++ 泛型编程 入门篇】 C++ 中的泛型算法 STL(sort,find)(二)
【C++ 泛型编程 入门篇】 C++ 中的泛型算法 STL(sort,find)
29 0
|
2月前
|
算法 搜索推荐 程序员
【C++ 泛型编程 入门篇】 C++ 中的泛型算法 STL(sort,find)(一)
【C++ 泛型编程 入门篇】 C++ 中的泛型算法 STL(sort,find)
35 0
|
2月前
|
算法 自然语言处理 双11
算法设计_综合练习_编程题
算法设计_综合练习_编程题
11 0
|
2月前
|
人工智能 算法
【算法】深入理解 Prolog:逻辑编程的奇妙世界
【算法】深入理解 Prolog:逻辑编程的奇妙世界
24 0
|
3月前
|
算法 数据安全/隐私保护
火山中文编程 -- RSA算法
火山中文编程 -- RSA算法
79 0