一.解法
https://leetcode-cn.com/problems/excel-sheet-column-number/
要点:进制转换
这题比168. Excel表列名称简单因为是正向的不用考虑168题的错位减一,直接利用公式循环计算即可,也可以哈希表把A-Z映射到1-26再计算,具体公式为的遍历总合,length表示string长度,i从0开始表示第几位(从左到右)。
Python,C++,Java都用了相同的进制转换法。
二.Python实现
class Solution:
def titleToNumber(self, s: str) -> int:
l = len(s)
value = 0
hashmap = {}
for i in range(1, 27):
hashmap[chr(i+64)] = i
i=0
for ch in s:
value += hashmap[ch] * 26**(l-1-i)
i+=1
return value
三.C++实现
class Solution {
public:
int titleToNumber(string s) {
int answer=0;
int length=s.size();
for(int i=0;i<length;i++){
answer+=(s[i]-64)*pow(26,length-i-1);
}
return answer;
}
};
四.java实现
class Solution {
public int titleToNumber(String s) {
int answer=0;
int length=s.length();
for(int i=0;i<length;i++){
answer+=((int)(s.charAt(i))-64)*Math.pow(26,length-i-1);
}
return answer;
}
}