leetcode算法171.Excel 表列序号

Posted 学无止境小奇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode算法171.Excel 表列序号相关的知识,希望对你有一定的参考价值。

👏👏👏

哈喽!大家好,我是【学无止境小奇】,一位热爱分享各种技术的博主!😍😍😍

⭐【学无止境小奇】的创作宗旨:每一条命令都亲自执行过,每一行代码都实际运行过,每一种方法都真实实践过,每一篇文章都良心制作过。✊✊✊

⭐【学无止境小奇】的博客中所有涉及命令、代码的地方,除了提供图片供大家参考,另外会在图片下方提供一份纯文本格式的命令或者代码方便大家粘贴复制直接执行命令或者运行代码。🤝🤝🤝

⭐如果你对技术有着浓厚的兴趣,欢迎关注【学无止境小奇】,欢迎大家和我一起交流。😘😘😘

❤️❤️❤️感谢各位朋友接下来的阅读❤️❤️❤️

文章目录

一、leetcode算法

1、Excel 表列序号

1.1、题目

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

1.2、思路

思路一:此题我们首先要找到规律,字母A-Z对应1-26,而且往前进一位就要乘以26,所以我们可以定义两个变量,一个是要返回的总数,一个是每一位要乘以的系数。

1.3、答案

class Solution 
    public int titleToNumber(String columnTitle) 
        //定义一个要返回的总数
        int number = 0;
        //定义一个相乘系数,最右边的乘以1,往前进一位再乘以26
        int multiple = 1;
        for(int i = columnTitle.length() -1; i >= 0; i--)
            int k = columnTitle.charAt(i) - 'A' + 1;
            number += k * multiple;
            multiple *= 26;
        
        return number;
    

复杂度分析

时间复杂度:O(n),其中 nn 是列名称 columnTitle 的长度。需要遍历列名称一次。

空间复杂度:O(1)。

以上是关于leetcode算法171.Excel 表列序号的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode171. Excel 表列序号(C++)

LeetCode171. Excel 表列序号(C++)

LeetCode171. Excel 表列序号

每日一题之LeetCode 171excel表列序号

LeetCode 171 Excel表列序号[进制转换] HERODING的LeetCode之路

LeetCode 815. 公交路线 / 909. 蛇梯棋(还是bfs)/ 168. Excel表列名称 / 171. Excel表列序号