LeetCode第三题—— Longest Substring Without Repeating Characters(最长无重复子字符串)

题目描述

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

Example 1

Input: "abcabcbb"
Output: 3 
Explanation: The answer is "abc", with the length of 3. 

Example 2

Input: "bbbbb"
Output: 1
Explanation: The answer is "b", with the length of 1.

Example 3

Input: "pwwkew"
Output: 3
Explanation: 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.

My solution(94ms,39.2MB)

class Solution {
    public int lengthOfLongestSubstring(String s) {
        HashMap<String,Integer> map = new HashMap<String,Integer>();
        int result=0,current=1;
        for(int i=0;i<s.length();){
            String temp = s.substring(i,i+1);
            if (!map.containsKey(temp)) {
                map.put(temp,1);
                i++;
            }else{
                i = current;
                current++;
                int len = map.size();
                if(len > result){ result = len;}
                map.clear();
            }
            if(map.size()>result){
                result = map.size();
            }
            
        }
        return result;
    }
}

 

posted @ 2019-04-11 11:48  芒果爱打小怪兽  阅读(95)  评论(0编辑  收藏  举报