Table of Contents
Longest Substring Without Repeating Characters
Problem Statement
Given a string s
, find the length of the longest
substring
without repeating characters.
Example 1:
Input: s = "abcabcbb" Output: 3 Explanation: The answer is "abc", with the length of 3.
Example 2:
Input: s = "bbbbb" Output: 1 Explanation: The answer is "b", with the length of 1.
Example 3:
Input: s = "pwwkew" Output: 3 Explanation: The answer is "wke", with the length of 3. Notice that the answer must be a substring, "pwke" is a subsequence and not a substring.
Constraints:
0 <= s.length <= 5 * 104
s
consists of English letters, digits, symbols and spaces.
Golang Solution
func lengthOfLongestSubstring(s string) int {
if len(s) == 0 {
return 0
}
n := len(s)
left := 0
right := 0
maxLen := 0
seen := make(map[byte]int)
for right < n {
if prevIndex, found := seen[s[right]]; found {
// if char is seen previously
if prevIndex >= left {
// jump directly to prevIndex + 1
left = prevIndex + 1
}
}
maxLen = max(maxLen, right-left+1)
seen[s[right]] = right
right++
}
return maxLen
}
Output
Input
s = "abcabcbb"
Output
3
Input
s = "bbbbb"
Output
1
Input
s = "pwwkew"
Output
3
Input
s = "dvdf"
Output
3
Input
s = "ckilbkd"
Output
5
#Sliding Window #Hash Table # String
Please visit https: https://codeandalgo.com for more such contents
Leave a Reply