python求解LeetCode 习题 Excel Sheet Column Title
来源:互联网 发布:漱口水 酒精 知乎 编辑:程序博客网 时间:2024/06/06 07:12
1、题目
Given a positive integer, return its corresponding column title as appear in an Excel sheet.
For example:
1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> AB
题目的意思就是想把类似于A、AA、AS这样的字符转化为26进制表达的数字,还要实现反转
思路:
按照正常的进制转换的做法的确是可以做出来,但是个人感觉这个题目还有别的更简单的做法,就是事先建立起来两个映射的字典,最起码可以提高效率,这也是我第一眼看到这个题目就想用的方法,事实证明的确是好使的,至于时间效率什么的倒是没有去测试,如果感兴趣的话倒是可以去试试
下面是具体实现:
#!usr/bin/env python#encoding:utf-8'''__Author__:沂水寒城功能:实现进制转换'''map_dict={'A':1,'B':2,'C':3,'D':4,'E':5,'F':6,'G':7,'H':8,'I':9,'J':10,'K':11, 'L':12,'M':13,'N':14,'O':15,'P':16,'Q':17,'R':18,'S':19,'T':20,'U':21, 'V':22,'W':23,'X':24,'Y':25,'Z':26}reverse_map={1:'A',2:'B',3:'C',4:'D',5:'E',6:'F',7:'G',8:'H',9:'I',10:'J',11:'K', 12:'L',13:'M',14:'N',15:'O',16:'P',17:'Q',18:'R',19:'S',20:'T',21:'U', 22:'V',23:'W',24:'X',25:'Y',26:'Z'}def excel_sheet_title_transform(str_list): ''' 输入:['A','AZ','AM','BA'] 输出:对应的数字 ''' for one in str_list: if len(one)==1: print str(one)+'----->'+str(map_dict[one]) else: length=len(one) value=0 for i in range(length-1): value+=26*map_dict[one[i]] value+=map_dict[one[-1]] print str(one)+'----->'+str(value)def reverse_transform(num_list): ''' 输入:[1,52,39,53] 输出:对应英文字符 ''' for one in num_list: if one<=26: print str(one)+'------>'+reverse_map[one] else: one_list=[] temp=one while one!=0: mod=one%26 one_list.append(mod) one/=26 str_list=[] for one_num in one_list: if one_num in map_dict.values(): str_list.append(reverse_map[one_num]) print str(temp)+'------>'+''.join(str_list[::-1])if __name__ == '__main__': str_list=['A','AZ','AM','BA'] num_list=[1,52,39,53] excel_sheet_title_transform(str_list) print '*************************reverse_transform***************************' reverse_transform(num_list)
结果如下:
A----->1AZ----->52AM----->39BA----->53*************************reverse_transform***************************1------>A52------>B39------>AM53------>BA[Finished in 0.3s]
阅读全文
0 0
- python求解LeetCode 习题 Excel Sheet Column Title
- 168. Excel Sheet Column Title Leetcode Python
- [leetcode: Python] 168. Excel Sheet Column Title
- Leetcode: Excel Sheet Column Title
- [LeetCode]Excel Sheet Column Title
- leetcode:Excel Sheet Column Title
- [LeetCode]Excel Sheet Column Title
- [LeetCode] Excel Sheet Column Title
- [leetcode]Excel Sheet Column Title
- LeetCode--Excel Sheet Column Title
- Leetcode: Excel Sheet Column Title
- 【Leetcode】Excel Sheet Column Title
- [LeetCode] Excel Sheet Column Title
- 【Leetcode】Excel sheet Column title
- LeetCode:《Excel Sheet Column Title》
- leetcode-excel sheet column title
- LeetCode--Excel Sheet Column Title
- LeetCode:Excel Sheet Column Title
- 时间戳(时间戳的各种转换)
- 并查集
- Metron(一)
- Linux学习笔记 认识bash这个shell
- ifream 在子页面链接替换父页面
- python求解LeetCode 习题 Excel Sheet Column Title
- chrome强制转跳https
- RFC6902—JSON PATCH
- Android_对话框
- JavaWeb之servlet入门1
- 流畅的Python
- HRBUST
- lwip 中tcp能与内网通信,但不能和外网通信的解决方法
- 《剑指offer》字符流中第一个不重复的字符