题目描述:(中等难度)
解题思路
滑动窗口
Java 代码
class Solution {
public int lengthOfLongestSubstring(String s) {
Map<Character, Integer> map = new HashMap<>();
int start = 0;
int ans = 0;
for (int i =0;i<s.length();i++){
char alpha = s.charAt(i);
if (map.containsKey(alpha)){
start = Math.max(map.get(alpha),start);
}
ans = Math.max(ans,i-start+1);
map.put(alpha,i+1);
}
return ans;
}
}
Python 代码
class Solution:
def lengthOfLongestSubstring(self, s):
"""
:type s: str
:rtype: int
"""
st = {}
start, ans = 0, 0
for j in range(len(s)):
if s[j] in st:
start = max(st[s[j]], start)
ans = max(ans, j - start + 1)
st[s[j]] = j + 1
return ans
s = Solution()
res = s.lengthOfLongestSubstring("pwwkew")
print(res)