반응형
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.
📖문제. 연속된 substring을 카운팅해서 제일 긴 문자를 구한다.
(BUT 같은 문자가 두번이상 나오면 안된다)
import java.util.HashSet;
class Solution {
public int lengthOfLongestSubstring(String s) {
int max = 0;
int answer = 0;
int i=0, j=0;
int length = s.length();
HashSet<Character> set = new HashSet<>();
while(j < length){
if(i > j) break;
if(!set.contains(s.charAt(j))){
set.add(s.charAt(j++));
max = j - i;
answer = (max > answer)?max:answer;
continue;
}
set.remove(s.charAt(i++));
}
return answer;
}
}
300x250
'Algorithm > LeetCode' 카테고리의 다른 글
[LeetCode] 371. Sum of Two Integers (두 숫자의 합) (1) | 2022.05.24 |
---|---|
[LeetCode] 35. Search Insert Position (0) | 2022.04.20 |
[LeetCode] 58. Length of Last Word (0) | 2022.04.17 |
[LeetCode] 9. Palindrome Number (0) | 2022.04.17 |
[LeetCode] 릿코드 시작하기, Github에 자동 커밋(LeetHub) 방법 (0) | 2022.04.16 |