Longest Substring Without Repeating Characters

来源:互联网 发布:mac pro删除文件 编辑:程序博客网 时间:2024/06/05 03:10

原题地址:点我传送

这道题的思路还是比较简单的(但是要用到哈希容器),用一个哈希表记录在字符串中某个字符出现的最后一次的位置,并用两个值记录当前无重复字符字串的头和尾。然后从头遍历到尾的时候如果有已出现的字符,则更新当前记录的字串的首部到该字符上次出现的下一位和当前首部的较大值,另外还要更新哈希表和最长字串长度。

Java:

public class Solution {    public int lengthOfLongestSubstring(String s) {        if(s.length()==0)return 0;        HashMap<Character, Integer> map = new HashMap<Character, Integer>();        int ans=0,start=0;        for(int i=0;i<s.length();i++)        {            if(map.containsKey(s.charAt(i)))            {                start = Math.max(start,map.get(s.charAt(i))+1);            }            map.put(s.charAt(i),i);            ans = Math.max(ans,i-start+1);        }        return ans;    }}


0 0