LeetCode简单题:168. Excel表列名称(Python,C++,Java)

一.解法

https://leetcode-cn.com/problems/excel-sheet-column-title/
要点:进制转换,取模取余
Python,C++,Java都用了相同的取模取余法
看成26进制转换,但要注意题目不是0-25为基而是1-26为基,所以每次取余前都要减1
节约时间可以用hash表或字典把0-25映射成A-Z

二.Python实现

class Solution:
    def convertToTitle(self, n: int) -> str:
        answer=""
        while n>0:
            n-=1
            temp=n%26
            answer+=chr(65+temp)
            n=int(n/26)
        return answer[::-1]

三.C++实现

class Solution {
public:
    string convertToTitle(int n) {
        unordered_map<int,char> hashmap;
        string answer;
        string answerreverse;
        int temp;
        for(int i=0;i<26;i++){
            hashmap[i]='A'+i;
        }

        while(n!=0){     
            n-=1;    
            temp=n%26;       
            answer+=hashmap[temp];
            n=n/26;                      
        }


        for(int i=answer.size()-1;i>=0;i--){
            answerreverse+=answer[i];
        }
        return answerreverse;


    }
};

四.java实现

class Solution {
    public String convertToTitle(int n) {

    StringBuilder sb = new StringBuilder();
    int temp;
    while (n > 0) {
        n-=1;
        temp = n % 26;  
        sb.insert(0, (char) ('A' + temp ));
        n /= 26;
    }
    return sb.toString();

    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。