세번째 문제입니다.
난이도는 중...
전 아래와 같이 풀었습니다.
#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%....
ㅠㅠ 분발해야겠습니다.
'Dev Language > LeetCode' 카테고리의 다른 글
[LeetCode] 5. Longest Palindromic Substring (0) | 2018.01.10 |
---|---|
[LeetCode] 4. Median of Two Sorted Arrays (0) | 2018.01.10 |
[LeetCode] 2. Add Two Number (0) | 2017.12.31 |
[LeetCode] 1. Two Sum (0) | 2017.12.31 |
[LeetCode] 소개 - 온라인 코딩 문제 풀기 (0) | 2017.12.30 |