组卷题库 > 高中信息技术试卷库
试题详情
寻找最长无重复数字子串。输入一串仅由0~9组成的数字字符串,找出其中不含有重复字符的最长子串,若有多个长度相同的子串,则输出最后一个。如:输入数字字符串"1231255768",其最长的无重复数字子串有"3125"、"5678",则输出"5678",长度为4。实现该功能的python程序如下:

defrepeat(s,x,y):#判断字符串s从位置x到y是否有重复字符

#无重复返回True(若x=y,为无重复),有重复返回Flase,代码略。

s1=input("请输入一个数字字符串: ")

len=len(s1)

left,right,maxlen=0,0,0

while right<len:

    if not repeat(s1,left,right):

          ⑴    

    else:

        if    ⑵    :

            maxlen=right-left+1

            s2=s1[left:right+1]

               ⑶   

print("最长无重复子串为: ",s2,"长度是: ",maxlen)

加框处的可选代码为:

①left+=1            ②right+=1          ③right-=1

④right-left>maxlen  ⑤right-left+1>=maxlen

为使程序正确运行, 则程序段(1)(2)(3)处代码依次为(   )

A、①④③
B、③⑤①
C、②④①
D、①⑤②
知识点
参考答案
采纳过本试题的试卷
教育网站链接