【LeetCode】3.Longest Substring Without Repeating Characters 無重複字元的最長子串
阿新 • • 發佈:2018-11-29
輸入: "pwwkew" 輸出: 3 解釋: 無重複字元的最長子串是"wke"
,其長度為 3。 請注意,答案必須是一個子串,"pwke"
是一個子序列 而不是子串。
解題思路:
本題沒什麼難點。
lenth = 0 prevLoc = 0 i = 0 maxI = len(s) while i < maxI: if s[i] in s[prevLoc:i]: newLenth = i - prevLoc if newLenth > lenth: lenth = newLenth # print(s[prevLoc:i]) prevLoc = prevLoc + s[prevLoc:i].index(s[i]) + 1 i += 1 newLenth = i - prevLoc if newLenth > lenth: lenth = newLenth # print(s[prevLoc:i]) return lenth
84 ms,打敗了87.41%的對手。
瀏覽了下官方示例程式碼,用了很多Java特有的東西...理解起來有點麻煩[扶額]
由於Java不能像Python這樣把字串理解成字元陣列....哎?為啥不能...我記得有char[]....也許是速度沒有HashMap或HashSet快?
所以,Python處理起來比較方便。
值得一提的是,示例程式碼最後使用的是:把字元轉ASCII,然後存入int陣列的方式,令人眼前一亮..