【发布时间】:2020-08-28 05:49:00
【问题描述】:
我正在完成计算机科学和使用 Python 编程课程的介绍,并被困在第 1 周:Python 基础 - 问题集 1 - 问题 3。
问题问:
假设 s 是一串小写字符。
编写一个程序,打印 s 的最长子串,其中 字母按字母顺序出现。例如,如果
s = 'azcbobobegghakl',那么你的程序应该打印按字母顺序排列的最长子串是:beggh
在平局的情况下,打印第一个子字符串。例如,如果
s = 'abcbcd',那么你的程序应该打印*按字母顺序最长的子串是:abc
有很多关于堆栈溢出的帖子,人们只是在追逐或给出代码作为答案。我希望了解代码背后的概念,因为我是编程新手并希望更好地了解基础知识
我发现以下代码似乎可以回答这个问题。我了解 for 循环的基本概念,但我无法理解如何使用它们(for 循环)在字符串中查找字母序列
谁能帮我理解以这种方式使用 for 循环的概念。
s = 'cyqfjhcclkbxpbojgkar'
lstring = s[0]
slen = 1
for i in range(len(s)):
for j in range(i,len(s)-1):
if s[j+1] >= s[j]:
if (j+1)-i+1 > slen:
lstring = s[i:(j+1)+1]
slen = (j+1)-i+1
else:
break
print("Longest substring in alphabetical order is: " + lstring)
【问题讨论】: