我正在尝试编写一个函数,它将字符串s
作为输入,并返回s
中按字母顺序排列的子字符串列表。例如,s = 'acegibdh'
应该返回['acegi', 'bdh']
。你知道吗
下面是我想到的代码:
s = 'acegibdh'
ans = []
subs = []
i = 0
while i != len(s) - 1:
while s[i] < s[i+1]:
subs.append(s[i])
i += 1
if s[i] > s[i-1]:
subs.append(s[i])
i += 1
subs = ''.join(subs)
ans.append(subs)
subs = []
print ans
由于i+1测试超出了索引范围,它在处理字符串的最后一个字母时一直遇到问题。我花了很长时间来修补它,试图想出一种方法来避免这个问题。有人知道怎么做吗?你知道吗
为什么不把第一个字母硬编码成
ans
,然后只处理字符串的其余部分呢?您只需迭代字符串本身,而不必使用索引。你知道吗我决定把你的代码改一下如果你有任何问题请告诉我
只是为了好玩,一个单线解决方案。你知道吗
相关问题 更多 >
编程相关推荐