leetcode--寻找连续最大不重复子串

def find_max_substr(astring):
    max_sub_str, temp = [], []
    left_ptr, right_ptr = 0, 0
    total = len(astring)
    while right_ptr < total:
        cur_str = astring[right_ptr]
        if cur_str not in temp:
            temp.append(cur_str)
            right_ptr += 1
        else:
            if len(temp) > len(max_sub_str):
                max_sub_str = temp
            index = temp.index(cur_str)
            left_ptr = left_ptr+index+1
            temp = [astring[j] for j in range(left_ptr, right_ptr)]

    if len(temp) > len(max_sub_str):
        max_sub_str = temp

    return max_sub_str

astring = 'asdfabcefghijk'
ret = find_max_substr(astring)
print(''.join(ret), len(ret))

 

'''
求最短子字符串
'''
def
min_str(a_str): min_str_temp,temp=a_str,[] left,right=0,0 total=len(a_str) while right<total: cur_str=a_str[right] if cur_str not in temp: temp.append(cur_str) right+=1 else: if len(temp) < len(min_str_temp): min_str_temp=temp left = left+temp.index(cur_str)+1 temp=[a_str[j] for j in range(left,right)] if len(temp) < len(min_str_temp): min_str_temp = temp return "".join(min_str_temp) if __name__=="__main__": a_str="abcde" result=min_str(a_str) print(result,a_str.count(result))

 

posted @ 2021-11-08 21:27  keep2021  阅读(31)  评论(0编辑  收藏  举报