—— Longest Substring Without Repeating Characters

 3、Longest Substring Without Repeating Characters

最長無重複字符的子串

給定一個字符串,請找出其中無重複字符的最長子字符串。
樣例

例如,在"abcabcbb"中,其無重複字符的最長子字符串是"abc",其長度爲 3

對於,"bbbbb",其無重複字符的最長子字符串爲"b",長度爲1


代碼:
class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        vector<int> charIndex(256,-1);//哈希表
        int Longest=0,start=-1;//最大長度,字符串頭的位置
        for(int i=0;i!=s.length();++i)
        {
            if(charIndex[s[i]]>start)//如果出現重複元素
                start=charIndex[s[i]];//start就跳轉到上一次出現該元素的位置後開始記錄
            charIndex[s[i]]=i;//記錄出現元素的位置
            Longest=max(Longest,i-start);
        }
            return Longest;
    }
};


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章