【发布时间】:2017-12-22 23:25:38
【问题描述】:
我正在学习 MIT 主要 Python 课程的第 3 题,并且我有一个公认的冗长的脚本,感觉好像快要接近了。我需要打印 s 的最长子字符串,其中字母按字母顺序出现。我能够提取出与其旁边的字符按字母顺序排列的任何字符。我需要看到的是:
输入:'aezcbobobegghakl'
需要的输出:'beggh'
我的输出:['a', 'e', 'b', 'b', 'b', 'e', 'g', 'g', 'a', 'k']
我的代码:
s = 'aezcbobobegghakl'
a = 'abcdefghijklmnopqrstuvwxyz'
len_a = len(a)
len_s = len(s)
number_list = []
letter_list = []
for i in range(len(s)):
n = 0
letter = s[i+n]
if letter in a:
number_list.append(a.index(letter))
n += 1
print(number_list)
for i in number_list:
letter_list.append(a[i])
print(letter_list)
index_list = []
for i in range(len(letter_list)):
index_list.append(i)
print(index_list)
first_check = []
for i in range(len(letter_list)-1):
while number_list[i] <= number_list[i+1]:
print(letter_list[i])
first_check.append(letter_list[i])
break
print(first_check)
我知道有很多更短且完全不同的方法可以解决问题,但为了我的理解,是否有可能完成这段代码以获得我正在寻找的输出?或者这只是我挖的一个失败的原因兔子洞?
【问题讨论】:
标签: python python-3.x list loops