您好,登錄后才能下訂單哦!
這篇文章主要介紹“如何返回不重復字符的最長字串長度”,在日常操作中,相信很多人在如何返回不重復字符的最長字串長度問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何返回不重復字符的最長字串長度”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
問題描述
給定一個字符串,請你找出其中不含有重復字符的最長子串的長度。
示例 1:輸入: "abcabcbb"
輸出: 3
解釋: 因為無重復字符的最長子串是 "abc",所以其長度為 3。
示例 2:輸入: "bbbbb"
輸出: 1
解釋: 因為無重復字符的最長子串是 "b",所以其長度為 1。
解決方案
對于本道題,題意很簡單,“不重復”和“最長字串”抓住這兩個關鍵字眼。
所以在一串給定得字符串中,通過循環的方式讓后面和前面的字符進行對比。對于無順序比較,這里我們采用set()函數,無序不重復元素集,可進行關系測試,刪除重復數據,還可以計算交集、差集、并集等。
最后將不重復字符串用len()函數進行計算長度。在一系列過程中用到了for循環,if條件語句,sorted()函數。
接下來展示完整的代碼。
def choose(msg): lst=[] for i in range(len(msg)): for j in range(i+1,len(msg)+1): m=msg[i:j] if len(set(m)) == len(m): lst.append(m) lst=list(sorted(lst,key=lambda x:len(x))) if len(lst)==0: return 0 return len(lst[-1]) print(choose("")) |
我們在程序中運行一下此代碼。
圖2.1
到此,關于“如何返回不重復字符的最長字串長度”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。