测试编程笔试题No.1-输入表格列的英文名称,返回其对应的数字序号

简介: 同一个字母,在不同的位置,对应的值不一样,字母A在个位对应的是1,在十位对应的是26 ,因此,联想到了进制的移位运算和进制之间的转换。

最近看到粉丝问我一个面试的笔试题,当时看了一下,只想到了大概思路,今天将这个题目分享给大家。


题目:编写一个函数,输入表格列的英文名称,返回其对应的数字序号。如输入A,输出1;输入B,输出2。字母A-Z对应的数字1-26。表格列名和数字的映射关系如下:

 

A
->
1
B
-> 2

...
Z
-> 26
AA
-> 27
AB
-> 28

...
AAA
-> 703
AAB
-> 704

...



微信图片_20220113211641.png


分析思路:

'''
** 表示乘方运算
AA  27  = 26**1 + 1 
AB  28  = 26**1 + 2
AAA 703 = 26**2 + 26**1 + 1   
AAB 704 = 26**2 + 26**1 + 2  
'''

从上面可以看出来,同一个字母,在不同的位置,对应的值不一样,字母A在个位对应的是1,在十位对应的是26 ,因此,联想到了进制的移位运算和进制之间的转换,这个题目可以考虑将每一位的值转换成26进制去处理。

步骤一:将字母转换成数字

{'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}

步骤二:编写函数 实现需求

mapdict = {'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}
def get_excelnumber(str):
    result = 0
    j=0
    for i in str[::-1]:
        result +=26**j*int(mapdict[i])
        j=j+1
    return result

经过测试,好像能达到效果。就是代码写的比较low,还可以继续优化。有没有bug就需要仔细测试下哈,思路应该是对的。

那个字母与数字的关系可以用python里面的推导式

mapdict ={chr(i+65):i+1 for i in range(26)}


再看看另一种写法(我朋友写的)


微信图片_20220113213735.jpg


编程这东西,还是得多练习,才能写出优雅的代码。大家有什么其他的问题,都可以公众号后台私聊,等我有空的时候来跟大家互相学习交流。

相关文章
|
2月前
|
Java
【Java每日一题】— —第二十一题:编程把现实生活的手机事物映射成一个标准类Phone,并定义一个测试类PhoneDemo测试Phone类的功能
【Java每日一题】— —第二十一题:编程把现实生活的手机事物映射成一个标准类Phone,并定义一个测试类PhoneDemo测试Phone类的功能
37 0
|
5月前
|
人工智能 算法 编译器
C语言初阶测评题:测试你的基础知识和编程技能!!
C语言初阶测评题:测试你的基础知识和编程技能!!
55 1
|
5月前
|
人工智能 测试技术 开发者
软件测试/人工智能|Python函数与调用:解放编程力量的关键
软件测试/人工智能|Python函数与调用:解放编程力量的关键
46 0
|
6月前
|
算法 测试技术 Go
【Go 编程实践】从零到一:创建、测试并发布自己的 Go 库
解释了为何需要开发自己的 Go 库,以及如何创建、测试和发布。文章以 Asiatz 库为例,详细阐述了创建目录、初始化项目、编写代码、测试、编写文档和发布等步骤,并强调了开发自己的 Go 库的优点,包括代码复用性、可维护性和可测试性。
236 0
【Go 编程实践】从零到一:创建、测试并发布自己的 Go 库
|
8月前
|
Shell 测试技术
Shell编程实战的命令测试
Shell编程实战的命令测试
37 1
|
3天前
数据结构考试测试编程题
数据结构考试测试编程题
|
2月前
|
存储 前端开发 Oracle
物化视图添加删除列测试
物化视图添加删除列测试
12 2
|
2月前
|
测试技术 持续交付
单元测试模块化编程
单元测试模块化编程
17 1
|
4月前
|
Shell Windows Perl
Shell编程自动化之数学运算与条件测试
本文主要介绍了Shell编程自动化之数学运算与条件测试,并结合实例测试。
25 0
|
10月前
|
Linux 测试技术 Windows
可编程 USB 转串口适配器开发板应用于电子设备开发测试
可编程 USB 转串口适配器开发板应用于电子设备开发测试
可编程 USB 转串口适配器开发板应用于电子设备开发测试

热门文章

最新文章