尝试查找最长字符串时出现意外错误

时间:2016-09-19 22:39:43

标签: python python-3.x

我没能编写一个程序来打印字符串的最长子字符串,其中字母按字母顺序出现在我的第一个Python测试中。

评论已阅读

  

"您的计划确实符合问题的要求,但也与规则4相矛盾,因此您的答案将不被接受"

所以这是我对代码的尝试:

def obtain_longest_substring(string):
    current_substring = longest_substring = string[0]
    for letter in string[1:]:
        if letter >= current_substring[-1]:
            current_substring += letter
            if len(current_substring) > len(longest_substring):
                longest_substring = current_substring
        else:
            current_substring = letter
    return longest_substring


def main():
    s = input("Enter a string: ")
    print("Longest substring in alphabetical order is: " + obtain_longest_substring(s))

if __name__ == "__main__":
    main()

但是预期的解决方案有一些我必须遵循的规则。规则4说:

  

对于这些问题,请不要包含输入语句或定义已经提到的变量。我们的自动化测试将为您提供价值。

我是Python新手。谁能告诉我我做错了什么?

2 个答案:

答案 0 :(得分:0)

规则说"不包括输入语句&#34 ;;你包含了一个输入语句(在main中)。

答案 1 :(得分:0)

规则明确指出包含input语句或定义变量(您也做过)。

您可以尝试将其重写为:

current_substring = longest_substring = s[0]
for letter in s[1:]:
    if letter >= current_substring[-1]:
        current_substring += letter
        if len(current_substring) > len(longest_substring):
            longest_substring = current_substring
    else:
        current_substring = letter

print("Longest substring in alphabetical order is: " +   str(longest_substring))