Menu
CoddyTech

Longest Substring Without Repeating Characters

文字列を調べて、各文字が1回だけ現れる連続した文字列を探します。coddycodeでは、ycodeには5種類の文字があり、繰り返しを含まないそれより長い文字列はないため、答えは5です。

考えられるすべての文字列を調べる方法でも解けますが、時間がかかります。より速い方法では、繰り返しを含まない2つの位置の間のウィンドウを維持します。右端を一度に1文字ずつ進めます。新しい文字がすでにウィンドウ内にある場合は、左端をその文字が前に現れた位置のすぐ次まで移動します。各文字の最後の位置を記録しておけば、この移動をすぐに行えるため、文字列を読むのは1回だけです。

文字列 s を受け取り、同じ文字が複数回現れない最長部分文字列(連続する文字の並び)の長さを返す、lengthOfLongestSubstring という名前の関数を書いてください。

大文字と小文字は異なる文字なので、a と A は重複ではありません。

制約: 1 <= s.length <= 5 * 10^4。s に含まれるのは英字(小文字と大文字)と数字のみです。

関数

lengthOfLongestSubstring(arg1: string) → integer
arg1string
戻り値integer

例

入力
arg1 = "coddycode"
出力
5

lock icon提出時に隠しテスト+12件

コードをリセット
def lengthOfLongestSubstring(s):
    # ここにコードを書いてください
テストケース

ケース1

ケース2

ケース3

入力

arg1 = "coddycode"

期待値

5