[Leet Code] Longest SubString Without Repeating Character

600g (Kim Dong Geun)·2020년 8월 19일
1

겹치는 문자가 없는 SubString의 최대 길이를 구하여라

가 문제였다.

음 중복 체크는 Hash Set을 이용하면 되고, 문자열 체크는 Sliding Window로 구현하면 되겠네!
라고 생각을 했다.

빈 문자열에 대해 처리를 따로 해줬다. 빈문자열 또한 처음부터 고려하고 알고리즘을 짰으면 괜찮지 않을까 라는 생각을 조심스럽시리사랍게 해본다.

import java.util.*;

class Solution {
    
    
    public int lengthOfLongestSubstring(String s) {
        
        HashSet<Character> set = new HashSet<>();
        
        int max = 1;
        if(s.equals("")) return 0;
        for(int i=0; i<s.length()-1; i++){
            int current = 0;
            set.clear();            
            for(int j=i; j<s.length(); j++){
                char c = s.charAt(j);
                if(set.contains(c)){
                    if(current > max) max = current;
                    break;
                }
                current++;
                set.add(c);
                if(j==s.length()-1){
                    if(current > max) max = current;
                    break;
                }
            }
        }
        return max;
    }
}

소스코드와 속도 만족스럽진 않지만 해결 👀

profile
수동적인 과신과 행운이 아닌, 능동적인 노력과 치열함

1개의 댓글

comment-user-thumbnail
2020년 8월 20일
답글 달기