LeetCode简单题:171. Excel表列序号(Python,C++,Java)

一.解法

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

四.java实现

class Solution {
    public int titleToNumber(String s) {
        int answer=0;
        int length=s.length();
        for(int i=0;i

你可能感兴趣的:(LeetCode简单题:171. Excel表列序号(Python,C++,Java))