leetcode-Longest Substring Without Repeating Characters

class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        int longest = 0;
        set<char> repeat;
        string::size_type index1 = 0, index2 = 0;
        if (0 == s.size())
        {
            return 0;
        }
        else if (1 == s.size())
        {
            return 1;
        }
        index2 = 1;
        repeat.insert(s[index1]);
        while (index1 < s.size() && index2 < s.size())
        {
            if (!repeat.count(s[index2]))
            {
                repeat.insert(s[index2]);
                ++index2;
            }
            else
            {
                repeat.clear();
                int len = index2 - index1;
                longest = (len > longest) ? len:longest;
                ++index1;
                index2 = index1 + 1;
                repeat.insert(s[index1]);
            }
            
        }
        int len = index2 - index1;
        longest = (len > longest) ? len:longest;
        
        return longest;
    }
};

 

posted @ 2013-04-25 11:01  aijm  阅读(86)  评论(0)    收藏  举报