0
点赞
收藏
分享

微信扫一扫

leetcode算法171.Excel 表列序号



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

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

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

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


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



文章目录

  • ​​一、leetcode算法​​
  • ​​ 1、Excel 表列序号​​
  • ​​1.1、题目​​
  • ​​1.2、思路​​
  • ​​1.3、答案​​

一、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、答案

leetcode算法171.Excel 表列序号_leetcode

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



举报

相关推荐

0 条评论