演算法題 python取不重複最長字串

2021-10-07 16:05:10 字數 758 閱讀 2274

# !/usr/bin/env python

# -*- coding: utf-8 -*-

str=

input

("請輸入字串"

)def

max_str_len

(str):

# 取出字串長度

lenght =

len(

str)

# 用於存放不重複字元

list=[

]# 判斷字串是不是空

if lenght==0:

return

0else

: num =

1for i in

range

(lenght)

:for j in

range

(i,lenght)

:# 判斷是否在重複

ifstr

[j]not

inlist

:list

str[j]

)else:if

len(

list

)> num:

num =

len(

list

)list

.clear(

)break

return num

print

(max_str_len(

str)

)

還可以用滑動視窗的辦法 用hashmap

最長不重複字串

一直以為這個方法是對的,後來發現這種方法是錯誤的,不能處理巢狀的情況,如 adercijckega 稍後再修正!最近面試遇到這題,再網上參考了一些blog,自己歸納出方法並用c 實現。問題 求出字串中最長不重複的字串,如 abccdefgchi 最長不重複字串為defgchi.分析 1.定義乙個二維...

最長不重複子串

出處 勇幸 thinking 題 從乙個字串中找到乙個連續子串,該子串中任何兩個字元不能相同,求子串的最大長度並輸出一條最長不重複子串。本節從最直接的方法逐步優化,漸進探索了四種實現方式,並最終找到時間複雜度為o n 輔助空間為常數的方案,內容如下 基本演算法 使用hash dp方案 dp hash...

最長不重複子串

演算法參考 找到乙個字串中的乙個連續子串,這個子串內不能有任何兩個字元是相同的,並且這個子串是符合要求的最長的。例如輸入 abcbef 輸出 cbef o n 的演算法,具體思路如下 以abcbef這個串為例,用乙個陣列pos記錄每個元素曾出現的下標,初始化為 1。從s 0 開始,依次考察每個字元,...