Menu
CoddyTech

Longest Substring Without Repeating Characters

Przeszukaj ciąg znaków w poszukiwaniu odcinków kolejnych znaków, w których każdy znak występuje tylko raz. W ciągu coddycode odcinek ycode zawiera pięć różnych znaków, a żaden dłuższy odcinek nie unika powtórzeń, więc odpowiedź to 5.

Sprawdzenie każdego możliwego odcinka działa, ale jest powolne. Szybsza metoda utrzymuje okno między dwiema pozycjami, w którym nigdy nie ma powtórzeń. Przesuwaj prawą krawędź o jeden znak naraz. Gdy nowy znak już znajduje się w oknie, przesuń lewą krawędź tuż za miejsce, w którym ten znak pojawił się wcześniej. Zapamiętanie ostatniej pozycji każdego znaku sprawia, że to przesunięcie jest natychmiastowe, więc ciąg jest odczytywany tylko raz.

Napisz funkcję o nazwie lengthOfLongestSubstring, która przyjmuje ciąg znaków s i zwraca długość najdłuższego podciągu (ciągu kolejnych znaków), w którym żaden znak nie występuje więcej niż raz.

Wielkie i małe litery to różne znaki, więc a i A nie są powtórzeniami.

Ograniczenia: 1 <= s.length <= 5 * 10^4. s zawiera wyłącznie angielskie litery (małe i wielkie) oraz cyfry.

Funkcja

lengthOfLongestSubstring(arg1: string) → integer
arg1string
Zwracainteger

Przykłady

Wejście
arg1 = "coddycode"
Wyjście
5

lock icon+12 ukrytych testów przy wysłaniu

Zresetuj kod
def lengthOfLongestSubstring(s):
    # Wpisz tutaj kod
Przypadki testowe

Przypadek 1

Przypadek 2

Przypadek 3

Wejście

arg1 = "coddycode"

Oczekiwane

5