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.
class Solution {
public int lengthOfLongestSubstring(String s) {
Map<Character, Integer> map = new HashMap<Character, Integer>();
int j = 0;
int res = 0;
for(int i = 0; i < s.length(); i++){
char c = s.charAt(i);
if (map.containsKey(c) && map.get(c) >= j){
res = Math.max(res, i - j);
j = map.get(c) + 1;
}
map.put(c, i);
}
return Math.max(res, s.length() - j);
}
}
'Algorithms and Data Structures > Coding Practices' 카테고리의 다른 글
AlgoExpert First Non-Repeating Character (0) | 2022.07.17 |
---|---|
LeetCode 1029. Two City Scheduling (0) | 2022.07.17 |
LeetCode 200. Number of Islands (0) | 2022.07.16 |
AlgoExpert InsertionSort (0) | 2022.07.16 |
AlgoExpert Bubble Sort (0) | 2022.07.16 |