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

歡迎訪問 生活随笔!

生活随笔

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

python

刷题练习记录(3)——无重复字符的最长子串(JAVA 和 Python)——set()函数/集合...

發布時間:2025/7/14 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 刷题练习记录(3)——无重复字符的最长子串(JAVA 和 Python)——set()函数/集合... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【題號003】無重復字符的最長子串

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

示例 1:

  輸入: "abcabcbb"
  輸出: 3
  解釋: 因為無重復字符的最長子串是 "abc",所以其長度為 3。
示例 2:

  輸入: "bbbbb"
  輸出: 1
  解釋: 因為無重復字符的最長子串是 "b",所以其長度為 1。
示例 3:

  輸入: "pwwkew"
  輸出: 3
  解釋: 因為無重復字符的最長子串是 "wke",所以其長度為 3。
  請注意,你的答案必須是 子串 的長度,"pwke" 是一個子序列,不是子串。

?

(1)Java

【代碼參考】

【1】【待補全】

?

?

?

?

?


?

(2)Python

【方法一:我自己的解法,非常慢……】

# -*- coding:UTF-8 -*- class Solution():def lengthOfLongestSubstring(self,s):""":param s: str:return: int"""if not s:max=0else: # sp=s[0]sp2 = s[0]max = 1pcount = 1for i in range(1, len(s)):flag = Truefor j in range(0, len(sp2)):if s[i] == sp2[j]:flag = Falsesp2 = sp2[j+1:]+s[i]pcount=len(sp2)breakif flag == True:pcount = pcount + 1sp2 = sp2 + s[i]if pcount > max: # sp=sp2max = pcountreturn max

?

【方法二:leetcode的解法,學習一下】

(1)關于set()函數的用法:建立集合,也可以使用 '{}' 建立集合,但是空集合只能使用set()函數,因為若使用 '{}' 建立的是一個空字典dict。

【set是一個無序不重復的序列】

具體set()集合函數用法,參考【https://www.cnblogs.com/cyx-12/p/9234285.html】

class Solution:def lengthOfLongestSubstring(self, s: str) -> int:if not s:return 0left = 0lookup = set()n = len(s)max_len = 0cur_len = 0for i in range(n):cur_len += 1while s[i] in lookup:lookup.remove(s[left])left += 1cur_len -= 1if cur_len > max_len:max_len = cur_lenlookup.add(s[i])return max_len

?

轉載于:https://www.cnblogs.com/anno-ymy/p/10071792.html

總結

以上是生活随笔為你收集整理的刷题练习记录(3)——无重复字符的最长子串(JAVA 和 Python)——set()函数/集合...的全部內容,希望文章能夠幫你解決所遇到的問題。

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