본문 바로가기

Dev Language/LeetCode

[LeetCode] 3. Longest Substring Without Repeating Characters

반응형

세번째 문제입니다.


난이도는 중...


전 아래와 같이 풀었습니다.


#include <algorithm>    // std::find


class Solution {

public:

    int lengthOfLongestSubstring(string s) {

        int nLongestLength = 0;

        std::vector<char> vLongest;

        std::vector<char> vCheck;

        

        for ( auto strIter = s.cbegin(); strIter != s.cend(); ++ strIter ) {

            auto findItr = std::find(vCheck.begin(), vCheck.end(), *strIter);

            

            if ( findItr != vCheck.cend() ) {

                

                if ( vLongest.size() <= vCheck.size() ) {

                     vLongest = vCheck;

                }

                

                vCheck.erase(vCheck.begin(), findItr + 1);

                vCheck.push_back(*strIter);

                

            } else {

                vCheck.push_back(*strIter);

            }

        }

        

        if ( vLongest.size() < vCheck.size() ) {

            return vCheck.size();

        }

        

               

        return vLongest.size();

    }

};

find라는 함수를 써서 구현해보았습니다.


속도는

32.39%....


ㅠㅠ 분발해야겠습니다.

반응형