3 無重複字元的最長子串

2021-09-29 08:43:47 字數 823 閱讀 4153

問題描述:

給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。

方案一:

建立乙個陣列,將查過的字元記錄在該陣列中,用start記錄無重複字元字串的起始位置,因為i記錄的是第乙個不符合重複的字元的位置,此時的無重複字元的字串長度為i - start;然後修改start的位置和無重複字元的字串的最大長度,並清除start之前在陣列中記錄的記錄數,然後繼續查詢字串。最後返回結果是因為從start位置到結束都沒有重複的字元的情況,需要和之前的最大長度進行比較。

public int lengthoflongestsubstring(string s) 

map[s.charat(i++)]++;

}return i - start > maxlen ? i - start: maxlen;

}

方案二:

建立乙個資料,將陣列的資料都賦值為-1,然後查詢字串,將查詢後的字元所在字串的位置j記錄在所建的陣列中,用i來記錄無重複字元的字串的初始位置,當之前遇到已經在陣列中賦值的字元的時候,更新初始字串的位置i + 1和最大的無重複字元的字串長度。

public int lengthoflongestsubstring(string s) 

int i, j, max;

i = j = max = 0;

while(j < s.length())

seen[c] = j;

j++;

max = math.max(max, j-i);

}return max;

}

3 無重複字元的最長子串

給定乙個字串,找出不含有重複字元的最長子串的長度。示例 給定 abcabcbb 沒有重複字元的最長子串是 abc 那麼長度就是3。給定 bbbbb 最長的子串就是 b 長度是1。給定 pwwkew 最長子串是 wke 長度是3。請注意答案必須是乙個子串,pwke 是 子串行 而不是子串。思路 用 i...

3 無重複字元的最長子串

給定乙個字串,找出不含有重複字元的最長子串的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 無重複字元的最長子串是 abc 其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 無重複字元的最長子串是 b 其長度為 1。示例 3 輸入 pwwkew 輸出 3 解釋 無重複字元的最長子串是...

3 無重複字元的最長子串

給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。示例 1 輸入 abcabcbb 輸出 3解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew 輸出 3解釋 因為...