python - 是否可以在不定义函数的情况下实现这一目标?

标签 python python-3.x

我正在尝试编写一个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/

相关文章:

python - Ipywidgets 生态系统中用于中断循环的停止按钮

python - E731 不分配 lambda 表达式,使用 def

python - 删除超过 70% 零的列

python - 无法在 python 中使用 webdriver 单击元素

python - 当一个线程正在运行时阻塞其他线程

python - 从多行字符串中剥离 "\n",内联时除外

mongodb - 如何通过pymongo在MongoDB中存储图像?

python - 在 python 中是否有更快的方法将字符串转换为 float ?

python - 我怎样才能让这个Python脚本连续/一遍又一遍地运行

python - 这种奇怪的结肠行为在做什么?