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

歡迎訪問 生活随笔!

生活随笔

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

python

python最长连续子串_LeetCode 03无重复字符的最长子串(滑动窗口)

發布時間:2025/3/21 python 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python最长连续子串_LeetCode 03无重复字符的最长子串(滑动窗口) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關注、在看,回復進群打卡

題目描述

題目描述:

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

示例 1:

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

示例 2:

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

示例 3:

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

分析

此題就是給一個字符串讓你找出最長沒有重復的一個字串。?要搞清子串和子序列的區別:

  • 子串:是連續的,可以看成原串的一部分截取。

  • 子序列:不一定是連續的,但是要保證各個元素之間相對位置不變。

處理思路?

  • 暴力查找,暴力查找當然是可以的,但是復雜度過高這里就不進行講解了。

本題選擇的思路是滑動窗口,滑動窗口,就是用一個區間從左往右,右側先進行試探,找到區間無重復最大值,當有重復時左側再往右側移動一直到沒重復,然后重復進行。在整個過程中找到最大的那個空間返回即可。

但是在Java編程語言中如何操作呢?

  • 定義一個left和right,表示滑動的區間。初始均為0.定義一個max表示最長初始為0.

  • right往右移動,同時記錄易懂經過元素的個數。當遇到重復即存在該元素的時候暫停。比較這個長度(right-left+1)與max的大小,max是否需要更新。

  • 接著left往右移動,同時移動途中將出現字母的詞數減一。直到移動到right位置相同字母的右側說明當前窗口沒有重復序列了,繼續循環執行到結束。

    在這里插入圖片描述

當然,最長的情況也在其中,因為我們只要不重復right就會右移,不能移的時候前一個即可能是最大長度:

你可能會問,用什么存儲這個詞數呢?

  • 哈希當然可以啦,你可以用HashMap存儲記錄這個值進行維護,就是可能偶爾稍微麻煩一點。

因為咱們知道字符char它底層是一個ASCII,是一個數值,我們可以創建一個int數組直接把ASCII值作為數組對應下表進行處理,這樣雖然占了點內存但是使用起來方便很多。

ac代碼

附上ac 代碼:

class?Solution?{
????public?int?lengthOfLongestSubstring(String?s)?{
?????????????int?a[]=new?int[500];

?????????int?max=0;
?????????int?l=0;
?????????for(int?i=0;i?????????{
?????????????a[s.charAt(i)]++;
?????????????while?(a[s.charAt(i)]>1)?{
????????????????a[s.charAt(l++)]--;
????????????}
?????????????if(i-l+1>max)
?????????????????max=i-l+1;
?????????}
?????????return?max;
????}
}

最后,歡迎點贊、收藏給個支持吧,如果有啥錯誤或者看法可以評論區留言哦!

最近往期精彩回顧

json從立地到成佛

Thymeleaf一篇就夠了

兩分鐘真能搞懂桶排序

SpringMVC文件上傳下載

學弟不懂原碼反碼補碼,氣的我給女朋友講了一夜

LeetCode 01兩數之和&02兩數相加

歡迎關注微信公眾號:bigsai?,回復打卡即可進群一起打卡力扣哦!

總結

以上是生活随笔為你收集整理的python最长连续子串_LeetCode 03无重复字符的最长子串(滑动窗口)的全部內容,希望文章能夠幫你解決所遇到的問題。

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