【剑指offer】面试题48. 最长不含重复字符的子字符串(java)
請(qǐng)從字符串中找出一個(gè)最長(zhǎng)的不包含重復(fù)字符的子字符串,計(jì)算該最長(zhǎng)子字符串的長(zhǎng)度。
?
示例?1:
輸入: "abcabcbb"
輸出: 3?
解釋: 因?yàn)闊o(wú)重復(fù)字符的最長(zhǎng)子串是 "abc",所以其長(zhǎng)度為 3。
示例 2:
輸入: "bbbbb"
輸出: 1
解釋: 因?yàn)闊o(wú)重復(fù)字符的最長(zhǎng)子串是 "b",所以其長(zhǎng)度為 1。
示例 3:
輸入: "pwwkew"
輸出: 3
解釋: 因?yàn)闊o(wú)重復(fù)字符的最長(zhǎng)子串是?"wke",所以其長(zhǎng)度為 3。
?? ? 請(qǐng)注意,你的答案必須是 子串 的長(zhǎng)度,"pwke"?是一個(gè)子序列,不是子串。
?
提示:
s.length <= 40000
代碼:
class?Solution?{
????public?int?lengthOfLongestSubstring(String?s)?{
????????Set<Character>?set?=?new?HashSet<>();
????????int?left?=?0,?right?=?0,?max?=?0;
????????while(right?<?s.length())?{
????????????while(set.contains(s.charAt(right)))?{
????????????????set.remove(s.charAt(left));
????????????????left++;
????????????}
????????????set.add(s.charAt(right));
????????????right++;
????????????max?=?Math.max(right?-?left,?max);
????????}
????????return?max;
????}
}
總結(jié)
以上是生活随笔為你收集整理的【剑指offer】面试题48. 最长不含重复字符的子字符串(java)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言中关于字符数组输入,scanf没执
- 下一篇: Neo4j 图创建1 以BiliBili