您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在给定字符串中按字母顺序查找最长的字母子字符串

在给定字符串中按字母顺序查找最长的字母子字符串

这里的问题是,resultfinal指向同一个列表。您可能会考虑+=在发出时会创建一个新列表result += letters,但不会:

>>> x = [1,2]
>>> y = x
>>> x += [3]
>>> x
[1, 2, 3]
>>> y
[1, 2, 3]
>>> x is y
True

但是,当您使用时x = x + [3]

>>> x = [1,2]
>>> y = x
>>> x = x + [3]
>>> x
[1, 2, 3]
>>> y
[1, 2]
>>> x is y
False

有关此行为的解释,看到这个问题。这是您的for循环中发生的事情(原始代码的编辑:),这是字符串中letters的最后一个a字符:

因此,可以通过更改原始代码(在编辑之前)进行修复

result += letters

result = result + [letters]

s = 'azcbobobegghakl'
result = []
final = []
for letters in s:
    result = result + [letters]        
    if result == sorted(result) and len(result) >= len(final):
        final=result            
    elif result != sorted(result):
        result = [result[len(result)-1]]

print(final)
其他 2022/1/1 18:33:26 有646人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶