Excel表列序号

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

提示:

  • 1 <= columnTitle.length <= 7
  • columnTitle 仅由大写英文组成
  • columnTitle 在范围 ["A", "FXSHRXW"]

题目来源: /

解题方法:

解题思路

  • 标签:字符串遍历,进制转换
  • 初始化结果 ans = 0,遍历时将每个字母与 A 做减法,因为 A 表示 1,所以减法后需要每个数加1,计算其代表的数值 num = 字母 - ‘A’ + 1
  • 因为有 26 个字母,所以相当于 26 进制,每 26 个数则向前进一位
  • 所以每遍历一位则ans = ans * 26 + num
  • ZY 为例,Z 的值为 26Y 的值为 25,则结果为 26 * 26 + 25=701
  • 时间复杂度:O(n)



代码:

function titleToNumber($columnTitle) {$ans = 0;for($i=0; $i < strlen($columnTitle); $i++) {$num = ord($columnTitle[$i]) - ord('A') + 1;$ans = $ans * 26 + $num;}return $ans;
}
function titleToNumber($columnTitle) {$num = 0;$strlen = strlen($columnTitle);for($i = 0; $i < $strlen; $i++){$column_no = ord($columnTitle[$i]) - 64;$num += 26 ** ($strlen - $i - 1) * $column_no;}return $num;
}

参考:
作者:画手大鹏
链接:/

发布者:admin,转转请注明出处:http://www.yc00.com/web/1700082695a975956.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信