无重复最长子串

 

 https://leetcode.cn/problems/longest-substring-without-repeating-characters/

 

 

 

func lengthOfLongestSubstring(s string) int {
    mp:=make(map[string]int)
    le:=0
    ans:=0
    for ri:=0;ri<len(s);ri++{
        str:=string(s[ri]) 
        le=getMax(le,mp[str])//mp标记移动的右窗口指针,同时判断窗口内是否出现重复字符串,移动左窗口指针
        mp[str]=ri+1     //标记下标位置的时候必须+1,标记右窗口字符,for循环移动右窗口指针
        ans=getMax(ans,ri-le+1) 
    }
    return ans
}
func getMax(a,b int)int{
    if a>b{
        return a
    }
    return b
}

 

posted @ 2022-06-22 11:18  知道了呀~  阅读(53)  评论(0编辑  收藏  举报