给你一个字符串 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”] 内
通过次数157,113提交次数219,885
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/excel-sheet-column-number
题解
class Solution {
public int titleToNumber(String columnTitle) {
//26进制
int ans=0;
for(int i=0;i<columnTitle.length();i++){
int num=columnTitle.charAt(i)-'A'+1;//charAt(i)-'A'
ans=ans*26+num;
}
return ans;
}
}
其实就看做是26进制,从后往前,(s.charAt(i)-‘A’)26*(n-i-1),同样也是符合规律的
class Solution {
public int titleToNumber(String columnTitle) {
int ans=0;
for(int i=columnTitle.length()-1;i>=0;i--){
ans+=(columnTitle.charAt(i)-'A'+1)*Math.pow(26,columnTitle.length()-i-1);
}
return ans;
}
}