复杂程序遇到的问题,该问题找到字符按字母顺序排列的最长子字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了复杂程序遇到的问题,该问题找到字符按字母顺序排列的最长子字符串相关的知识,希望对你有一定的参考价值。

我发现此解决方案似乎有效:

def longest_ascending(s):
matches = []
current = [s[0]]
for index, character in enumerate(s[1:]):
    if character >= s[index]:
        current.append(character)
    else:
        matches.append(current)
        current = [character]
matches.append(current)
return "".join(max(matches, key=len))

打印(最长的升序)

字符和索引s是否总是相同的字符?

例如,如果'ababc'存储在s变量中,则第一次'for'迭代将遍历'if'b'> = s [1]',基本上是'if'b' > ='b'',第二个将包含语句“ if'a'> ='a''',依此类推,这意味着“ else”块将永远不会实际执行。

所以,程序如何精确地发挥作用?

答案

注意,您正在枚举s[1:],但索引了s。如果s为'abc',则枚举中的第一对为(0, 'b'),而s[0]'a'

以上是关于复杂程序遇到的问题,该问题找到字符按字母顺序排列的最长子字符串的主要内容,如果未能解决你的问题,请参考以下文章

优化一个简单的缺失词算法[重复]

按字母顺序排列的名称和描述列表

输入的单词是不是按字母顺序排列?

用单词和数字按字母顺序排列字符串

按字母顺序排列的字符串

按字母顺序排列字符串数组(甚至是 *ptr)