【发布时间】:2019-08-07 04:55:42
【问题描述】:
我在计算机科学和 Python 编程简介中遇到了这个问题:
假设 s 是一串小写字符。
编写一个程序,打印 s 中字母按字母顺序出现的最长子串。例如,如果
s = 'azcbobobegghakl',那么您的程序应该打印:按字母顺序排列的最长子字符串是:beggh。在平局的情况下,打印第一个子字符串。例如,如果
s = 'abcbcd',那么您的程序应该打印:按字母顺序排列的最长子字符串是:abc。
我已经阅读了很多关于这个问题的答案(代码)。我可以说我理解这些答案背后的逻辑。
但是,我无法理解的是“Python 怎么知道答案是否按字母顺序正确?”
仅供参考,以下是我在网上看到的正确代码:
s = "azcbobobegghakl"
longest = current = s[0]
for i in range (len(s) - 1):
if s[i+1] >= s[i]:
current += s[i+1]
if len(current) > len(longest):
longest = current
else:
current = s[i+1]
print("Longest substring in alphabetical order is:", longest)
再次,我理解代码背后的逻辑。我不知道的是 Python 如何知道答案是否按字母顺序正确。
我知道这可能是一个愚蠢的问题。但由于我是编程新手,这个问题的答案对我来说意义重大。
【问题讨论】:
-
为什么需要排序?,如果按字母顺序对字符串进行排序,则按字母顺序排列的最长子字符串将是排序后的字符串本身。再次阅读问题最长的子字符串是
azcbobo[beggh]akl -
我不明白“理解这些答案背后的逻辑”是什么意思。因为您的示例只是一个普通的常见简单解决方案。
-
嗨,现在我看看我的问题,它措辞不当。我的意思是 Python 如何知道答案是否按字母顺序正确。
标签: python substring alphabetical