这段python代码是关于查找最长的子字符串的,我需要解释一下
我正在努力理解这段代码在幕后是如何工作的,非常感谢 请解释此部分: ================================================这段python代码是关于查找最长的子字符串的,我需要解释一下,python,edx,longest-substring,Python,Edx,Longest Substring,我正在努力理解这段代码在幕后是如何工作的,非常感谢 请解释此部分: ================================================ S = 'azcbobobegghaklbob' ACCOUNT, MAX = S[0], "" for c in S[1:] + " ": MAX = ACCOUNT if len(ACCOUNT) > len(MAX) else MAX ACCOUNT = ACCOUNT + c if c >=
S = 'azcbobobegghaklbob'
ACCOUNT, MAX = S[0], ""
for c in S[1:] + " ":
MAX = ACCOUNT if len(ACCOUNT) > len(MAX) else MAX
ACCOUNT = ACCOUNT + c if c >= ACCOUNT[-1] else c
print('Longest substring in alphabetical order is:', MAX)
把代码写得更清楚,它会读
s = 'azcbobobegghaklbob'
account = S[0]
maximum = ''
for c in s[1:] + ' ':
if len(account) > len(maximum):
maximum = account
if c >= account[-1]:
account += c
else:
account = c
print('Longest substring in alphabetical order is:', maximum)
max
是迄今为止按字母顺序排列的最长子字符串account
是按字母顺序计算的当前子字符串
for循环在'zcbobbegghaklbob'
上迭代<代码>帐户以字符串的第一个字符开始。第一个if
块:
if len(account) > len(maximum):
maximum = account
if c >= account[-1]:
account += c
如果帐户大于上一个最大值,则使最大值
等于帐户
c
是要分析的下一个字符,就在帐户的最后一个字符之后。第二个if
块:
if len(account) > len(maximum):
maximum = account
if c >= account[-1]:
account += c
查看c
是否按字母顺序位于帐户的最后一个字符之后。如果是,则将其添加到帐户的末尾。字符串的=
比较按字母顺序对它们进行排序,以获得相同大小写的字符
else
原因:
else:
account = c
清除当前子字符串,如果下一个字符不是按字母顺序排列,则重新开始
最后,最大值将是您想要的
额外的'
也被迭代,以便在循环完成之前,第一个if语句将再次执行一次。在python中,”
按字典顺序排在所有字母字符之前。如果将代码写得更清楚,它会读取
s = 'azcbobobegghaklbob'
account = S[0]
maximum = ''
for c in s[1:] + ' ':
if len(account) > len(maximum):
maximum = account
if c >= account[-1]:
account += c
else:
account = c
print('Longest substring in alphabetical order is:', maximum)
max
是迄今为止按字母顺序排列的最长子字符串account
是按字母顺序计算的当前子字符串
for循环在'zcbobbegghaklbob'
上迭代<代码>帐户
以字符串的第一个字符开始。第一个if
块:
if len(account) > len(maximum):
maximum = account
if c >= account[-1]:
account += c
如果帐户大于上一个最大值,则使最大值
等于帐户
c
是要分析的下一个字符,就在帐户的最后一个字符之后。第二个if
块:
if len(account) > len(maximum):
maximum = account
if c >= account[-1]:
account += c
查看c
是否按字母顺序位于帐户的最后一个字符之后。如果是,则将其添加到帐户的末尾。字符串的=
比较按字母顺序对它们进行排序,以获得相同大小写的字符
else
原因:
else:
account = c
清除当前子字符串,如果下一个字符不是按字母顺序排列,则重新开始
最后,最大值将是您想要的
额外的'
也被迭代,以便在循环完成之前,第一个if语句将再次执行一次。在python中,”
按字典顺序排在所有字母字符之前。你有什么具体问题吗?如果len(ACCOUNT)>len(MAX)else MAX ACCOUNT=ACCOUNT+c如果c>=ACCOUNT[-1],我不理解这部分MAX=ACCOUNTelse c然后使用调试器或打印变量以查看每次迭代中发生的情况。您有任何具体问题吗?如果len(ACCOUNT)>len(MAX)else,我不理解这部分MAX=ACCOUNT如果len(ACCOUNT)>len(MAX)else MAX ACCOUNT=ACCOUNT+c如果c>=ACCOUNT[-1],则使用调试器或打印变量以查看每次迭代中发生的情况。