Leetcode 3 Longest Substring Without Repeating Characters

来源:互联网 发布:圈子 知乎 编辑:程序博客网 时间:2024/06/08 12:05

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.


利用双指针的问题,但是值得注意的是对于max的情况的处理。

public class Solution {    public int lengthOfLongestSubstring(String s) {     if (s.length()==0 || s== null) {         return 0;     }        HashMap<Character, Integer> map = new HashMap<Character, Integer>();        int result=0;        for (int i=0, j=0; i<s.length(); ++i){            if (map.containsKey(s.charAt(i))){//如果说从这个出现的重复字符打断了目前不重复序列,那么中间这一段就要来比较                j = Math.max(j,map.get(s.charAt(i))+1);            }            map.put(s.charAt(i),i);//更新当前字符在map的value            result = Math.max(max,i-j+1);重新比较 比如一直不重复到最后一个        }        return result;    }}


0 0
原创粉丝点击