0 引言
本想法来自于leetcode第283场周赛第一题。
1 问题描述
Excel 表中的一个单元格(r, c)会以字符串"
例如,第1列用'A'表示,第2列用'B'表示,第3列用'C'表示,以此类推。
给你一个格式为"
找出所有满足r1 <= x <= r2且c1 <= y <= c2的单元格,并以列表形式返回。单元格应该按前面描述的格式用字符串表示,并以非递减顺序排列(先按列排,再按行排)。
提示:
s.length == 5
'A' <= s[0] <= s[3] <= 'Z'
'1' <= s[1] <= s[4] <= '9'
s由大写英文字母、数字、和':'组成
示例一:
输入:s = "K1:L2"
输出:["K1","K2","L1","L2"]
解释:上图显示了列表中应该出现的单元格。
红色箭头指示单元格的出现顺序。
2 算法描述
解题思路:我们通过示例可以很清楚的认识到我们需要解决的问题,总的来说本题的目的就两个:1.找出目标英文字母 2.找出目标的英文字母所伴随的数
而在Python中我们可以通过ord查找目标字母的ASCLL编码,之后通过chr函数将该字母找出。在本题我们可以看出字母都在目标索引的第0位和第3位,数在第1位和第4位(数的范围在1-9,题目限制),之后我们通过两个复合循环最后解决问题。
3 实验结果与讨论
通过编程最终解决了该问题。
附件
代码清单 用python解决excle表中的单元格
s = input() x = [] for i in range(ord(s[0]), ord(s[3]) + 1): for o in range(int(s[1]), int(s[4]) + 1): x.append(chr(i)+str(o)) print(x) |
4 结语
我们在解决一道问题的时候最重要的就是思路与想法,有了思路才能根据自己的思路一步步实现,并解决问题。
有话要说...