日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python输入多个字符串、输入最长的一串_无重复字符的最长子串(Python之暴力求解)...

發布時間:2024/2/28 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python输入多个字符串、输入最长的一串_无重复字符的最长子串(Python之暴力求解)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

無重復字符的最長子串(Python之暴力求解)

例題:

給定一個字符串,請你找出其中不含有重復字符的 最長子串 的長度。

示例:

(1)

輸入: “abcabcbb”

輸出: 3

解釋: 因為無重復字符的最長子串是 “abc”,所以其長度為 3。

(2)

輸入: “bbbbb”

輸出: 1

解釋: 因為無重復字符的最長子串是 “b”,所以其長度為 1。

輸入: “pwwkew”

輸出: 3

(3)

輸入: “pwwkew”

輸出: 3

解釋: 因為無重復字符的最長子串是 “wke”,所以其長度為 3。

請注意,你的答案必須是 子串 的長度,“pwke” 是一個子序列,不是子串。

分析:

要想求得最長無重復字符,那么我們需要遍歷這一字符串,例如示例三中“pwwkew”

在我們腦海里就是中就是先從序列為一的p開始遍歷一次累加字符串,只要累加的字符串無重復字母,那么就繼續累加,直到結束或者有重復字母為止,若遇到重復字母,那么就要從序列為2的w開始,繼續這樣操作下去,比較一下哪一種的長度最長,并輸出長度即可,雖然,這種方法比較容易理解,但是方法耗時較長!(在下一遍博客中將會介紹省時的一種方法,請游客們持續關注動態)

重要方法:

(1)在Python中有一個非常好的方法可以去除相等的字母或者數字等的方法,那就是集合,我們知道初中學過的集合是不允許有相同元素的,每個元素必須為一,Python中的集合也有這樣的性質。

(2)這個代碼需要用到倆從for循環來進行操作!(具體請參考代碼注釋)

代碼:

class Solution:

def lengthOfLongestSubstring(self, s: str) -> int:

a1=set([]) #第一個空集合

a2=set([]) #第二個空集合

length=0 #計算最長子字符創長度

for i in range(len(s)):

a1=set(s[i])

a2=set(s[i])#將第i個元素分別添加到a1,a2集合當中去

for j in range(i+1,len(s)):

a1.add(s[j])

if len(a1)>len(a2):#這行代碼巧妙的運用來Python中的集合

a2.add(s[j])

else:

break

if len(a2)>length:

length=len(a2)

return length #返回最大無重復子字符串

#筆者認為難以理解的是兩個for循環語句中的內容,建議游客可以舉一個字符串來在草稿紙上認真根據代碼步驟來實現并加以理解,如果有不懂的地方或者錯誤的地方請大家留言!

著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

總結

以上是生活随笔為你收集整理的python输入多个字符串、输入最长的一串_无重复字符的最长子串(Python之暴力求解)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。