給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。示例 1:
輸入: s = "abcabcbb"輸出: 3
解釋: 因為無重複字元的最長子串是 "abc",所以其長度為 3。
示例 2:
輸入: s = "bbbbb"輸出: 1
解釋: 因為無重複字元的最長子串是 "b",所以其長度為 1。
示例 3:
輸入: s = "pwwkew"輸出: 3
解釋: 因為無重複字元的最長子串是 "wke",所以其長度為 3。
請注意,你的答案必須是 子串 的長度,"pwke" 是乙個子串行,不是子串。
示例 4:
輸入: s = ""輸出: 0
0 <= s.length <= 5 * 104
s
由英文本母、數字、符號和空格組成
題目要求是統計無重複的最長字串,所以第一反應是遍歷字串,然後用乙個陣列記錄遇到的字元,然後記錄未訪問過的字元個數,並遇到重複字元後更新最長長度c語言:在實現過程中,c語言利用字元的ascii碼來作陣列索引,由於題目要求是字元包括空格和字母,空格的ascii碼是32,字母為說明大小寫,所以都考慮,最大的字母是小寫字母z,ascii碼是122,所以記錄陣列大小設為90+5
c++和python都是物件導向語言,直接使用集合操作
int lengthoflongestsubstring(char * s)
else
j++;
}if (len > mlen)
i++;
}return mlen;
}
c++:
class solution
else
j++;
}if (len > mlen)
i++;
}return mlen;
}};
python:
class solution:
def lengthoflongestsubstring(self, s: str) -> int:
mlen = 0
for i in range(0, len(s)):
lens = 0
flag =
for j in range(i, len(s)):
if (s[j] in flag):
break
else:
flag.add(s[j])
lens += 1
if lens > mlen:
mlen = lens
return mlen
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解釋 因為...