QA:最長部分文字列の無い繰り返し

文字の最長の文字列の繰り返しなしません

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

件名の説明:

文字列を考えると、あなたは、繰り返し文字の最長の文字列のサブ長さを含んでいないかを調べます。

例:

入力: "abcabcbb" 
出力:3

ソリューション:

使用マップlastOccured [バイト] int型のレコード最後の文字の発生や文字インデックス

各文字列Xの場合:

1.lastOccured [X]が存在しないか、または以下の動作開始よりもないん。

2.lastOccured [X]> =、时起動開始= lastOccured [X] +1。

毎回更新3.最大長maxLengthのを更新するために、[X] lastOccured。

 

コードは以下の通りであります:

lengthOfLongestSubstring(S FUNC INT { 
    lastOccured: =メイク(地図[ バイト ] INT 
    開始: = 0 
    のmaxLength: = 0 
    のため、I、CH =範囲[] バイト(S){
         もし NUM、OK:= lastOccured [CH ]; OK && NUM> = {起動
            開始 = NUM + 1 
        } 
        場合、I-スタート+ 1 > maxLengthの{ 
            のmaxLength = Iスタート+ 1 
        } 
        [CH]をlastOccured = 
    } 
    戻りのmaxLength 
}

 

おすすめ

転載: www.cnblogs.com/tulipgirl/p/11829708.html