leetcode : Longest Substring Without Repeating Characters 解题报告

Posted notesbuddy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode : Longest Substring Without Repeating Characters 解题报告相关的知识,希望对你有一定的参考价值。

Given a string, find the length of the longest substring without repeating characters.

Examples:

Given "abcabcbb", the answer is "abc", which the length is 3.

Given "bbbbb", the answer is "b", with the length of 1.

Given "pwwkew", the answer is "wke", with the length of 3. Note that the answer must be a substring, "pwke" is a subsequence and not a substring.

Subscribe to see which companies asked this question

 

tag : two pointers     HashSet

思路:

(1)从第一个字符开始遍历,计算以每个字符开始的最长无重复子字符串。 

(2)每一计算的子串存在零时的HashSet里面。 注意HashSet这个数据结构, 增加元素是add()不是put().

 

public class Solution {
    public int lengthOfLongestSubstring(String s) {
        if(s == null || s.length() == 0) {
            return 0;
        }
        int max = 0;
        
        for(int i = 0; i < s.length(); i++) {
            HashSet<Character> set = new HashSet<Character>();
            set.add(s.charAt(i));
            if(max >= s.length() - i) {
                    break;
                }
            
            for(int j = i + 1; j < s.length(); j++) {
                
                if(set.contains(s.charAt(j))) {
                    break;
                } else {
                    set.add(s.charAt(j));
                }
            }
            max = Math.max(max, set.size());
        }
        
        return max;
       
    }
}

 

以上是关于leetcode : Longest Substring Without Repeating Characters 解题报告的主要内容,如果未能解决你的问题,请参考以下文章

leetcode:longest words

Leetcode409. Longest Palindrome

leetcode:longest-increasing

[Leetcode]Longest Palindromic Substring

leetcode longest consecutive sequence

LeetCode Longest Increasing Subsequence