2020 이전/리트코친놈&기타문제

리트코드 문제 3

이상해C++ 2018. 11. 14. 00:54

test case 운빨이고 사실 한 16%정도


시간복잡도 O(n^2) 풀이

class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        int arrChar[256];
        initArr(arrChar);
        
        int longestSub = 0;
        int acc =0;
        
        string::iterator it = s.begin();
        string::iterator eit = s.end();
        string::iterator iter;
        
        for (;it!=eit; it++){
            for(iter=it;iter!=eit;iter++){
                int idx = *iter;
                if(arrChar[idx]<1){
                    arrChar[idx]++;
                    acc++;
                }
                else{
                    if(acc >= longestSub)
                        longestSub = acc;
                    break;
                }
            }
            if(iter==eit && acc>=longestSub)
                longestSub = acc;
            initArr(arrChar);
            acc =0;
        }
        return longestSub;
    }
    
    void initArr(int *arr){
        for(int i=0;i<256;i++){
            arr[i]=0;
        }
    }
};