合肥网站代运营公司有哪些,phpcms网站模版,深圳品牌折扣店,网站源码查询题意#xff1a;
给你一个字符串 columnTitle #xff0c;表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。
例如#xff1a; A - 1 B - 2 C - 3 … Z - 26 AA - 27 AB - 28 … 示例 1:
输入: columnTitle “A” 输出: 1
示例 2:
输…题意
给你一个字符串 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 7columnTitle 仅由大写英文组成columnTitle 在范围 [A, FXSHRXW] 内
题目来源 https://leetcode.cn/problems/excel-sheet-column-number/description/
解题方法
解题思路
标签字符串遍历进制转换初始化结果 ans 0遍历时将每个字母与 A 做减法因为 A 表示 1所以减法后需要每个数加1计算其代表的数值 num 字母 - ‘A’ 1因为有 26 个字母所以相当于 26 进制每 26 个数则向前进一位所以每遍历一位则ans ans * 26 num以 ZY 为例Z 的值为 26Y 的值为 25则结果为 26 * 26 25701时间复杂度O(n) 代码
function titleToNumber($columnTitle) {$ans 0;for($i0; $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;
}参考 作者画手大鹏 链接https://leetcode.cn/problems/excel-sheet-column-number/solutions/6849/hua-jie-suan-fa-171-excelbiao-lie-xu-hao-by-guanpe/