【发布时间】:2020-09-26 01:44:14
【问题描述】:
我想编写一个程序,从字符串 s 中按字母顺序打印最长的子字符串,但我不知道我做错了什么,我几天前才开始编码,这是我做过的最好的想办法。
s = 'vvrsmxxlplnawxxcmcvuxrgi'
alphabet =['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
Current_Sequence=''
Max_Sequence=''
runs=0
current_runs = ''
max_runs=''
for I in str(s)[1:]:
runs +=1
if alphabet.index(I) >= alphabet.index(s[runs-1]):
Current_Sequence += str(I)
current_runs += str(runs)
else:
if (len(str(Current_Sequence))) > (len(str(Max_Sequence))) :
Max_Sequence = str(Current_Sequence)
Current_Sequence=''
max_runs= int(str(current_runs)[0])
current_runs=''
else:
Current_Sequence=''
current_runs=''
if (len(Max_Sequence)) >= (len(Current_Sequence)):
print('Longest substring in alphabetical order is: ' + s[max_runs-1] + str(Max_Sequence))
if (len(Current_Sequence)) > (len(Max_Sequence)):
print('Longest substring in alphabetical order is: ' + s[current_runs[0]-1] + str(Current_Sequence))
* 错误:预期为“awxx”,得到“vwxx”。 *
在另一个试验中,s = 'zyxwvutsrqponmlkjihgfedcba' 结果是 * 错误:应为“z”,得到“不支持的操作数类型”:“str”和“int”。 *
任何意见都会有所帮助,因为我还很年轻,对代码还很陌生
【问题讨论】:
-
您好,欢迎来到 StackOverflow!您的代码没有按预期工作吗?如果没有,您能否编辑您的帖子并描述它在做什么?
-
欢迎您!你能提供一些期望结果的例子吗?
-
请阅读:stackoverflow.com/help/minimal-reproducible-example - 您的意见是什么?你有:
for I in str(s)[1:]:,但我没有看到任何地方定义了s。你得到什么输出?你期待什么输出?展示一些测试用例,这将是一个很好的起点...... -
正如@DillonMiller 提到的。您能否提供一些示例输入值和您期望的结果。请解释您尝试过的代码有什么问题。如果您收到错误消息,请在您的问题中也发布它。您提供给我们的信息越多,获得好的答案的机会就越大
-
我只是按照建议做了,并在输入中添加了字符串s、预期输出和实际输出