126 / 205
LeetCode · MediumO'rta20 ball· ~25 daqiqa

Longest substring without repeating characters

s satri berilgan. Hech qanday belgi takrorlanmaydigan eng uzun qism-satrning uzunligini toping.

Qism-satr (substring) — satrning ketma-ket joylashgan belgilaridan iborat bo'lagi (qism-ketma-ketlik, ya'ni subsequence emas). Bo'sh satr uchun javob 0.

example.go
func solve(s string) int {
    // ...
}

Misollar

kod
Input: s = "abcabcbb"
Output: 3
Tushuntirish: Javob "abc", uning uzunligi 3.
kod
Input: s = "bbbbb"
Output: 1
kod
Input: s = "pwwkew"
Output: 3

Maslahatlar

  1. Har bir qism-satrni alohida tekshirish shart emas — o'zgaruvchan uzunlikdagi oyna (sliding window) va har bir belgining oxirgi ko'rilgan pozitsiyasini saqlashni o'ylab ko'ring.
  2. Har bir belgining oxirgi uchragan indeksini map da saqlang; oynani o'ngga kengaytirib boring, agar joriy belgi oyna ichida oldin uchragan bo'lsa, oynaning chap chegarasini o'sha belgidan keyingi pozitsiyaga sakratib o'tkazing va har qadamda joriy oyna uzunligi bilan eng yaxshi natijani solishtiring.