我正在尝试编写一个Python程序,该程序将接受一个字符串并打印其中最长的子字符串,该子字符串也是按字母顺序排列的。例如:
the_string =“abcdefgghhisdghlqjwnmonty” 这里按字母顺序排列的最长子字符串是“abcdefgghhis”
我不允许定义自己的函数,也不能使用列表。这就是我的想法:
def in_alphabetical_order(string):
for letter in range(len(string) - 1):
if string[letter] > string[letter + 1]:
return False
return True
s = "somestring"
count = 0
for char in range(len(s)):
i = 0
while i <= len(s):
sub_string = s[char : i]
if (len(sub_string) > count) and (in_alphabetical_order(sub_string)):
count = len(sub_string)
longest_string = sub_string
i += 1
print("Longest substring in alphabetical order is: " + longest_string)
这显然包含一个非内置函数。在不定义此函数的情况下,如何检查候选子字符串的元素是否按字母顺序排列?换句话说:我如何在代码中实现这个函数为我所做的事情(例如,通过在代码中的某处或某处使用另一个 for 循环)?
最佳答案
只需通过代码,您就可以将函数的操作移至循环中,并使用变量来存储返回值。
我建议您听一下蜥蜴的账单,以帮助您解决问题
s = "somestring"
count = 0
longest_string = ''
for char in range(len(s)):
i = 0
while i <= len(s):
sub_string = s[char : i]
in_order = True
for letter in range(len(sub_string) - 1):
if sub_string[letter] > sub_string[letter + 1]:
in_order = False
break
if (len(sub_string) > count) and (in_order):
count = len(sub_string)
longest_string = sub_string
i += 1
print("Longest substring in alphabetical order is: " + longest_string)
关于python - 是否可以在不定义函数的情况下实现这一目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49563042/