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

Longest palindromic substring

Sizga s satri berilgan. s ichidagi eng uzun palindrom qism-satrni (substring) toping.

Palindrom — chapdan o'ngga ham, o'ngdan chapga ham bir xil o'qiladigan satr. Cheklovlar: 1 ≤ len(s) ≤ 1000. Eng uzun palindrom bir nechta bo'lsa, satrda birinchi uchraganini qaytaring.

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

Misollar

kod
Input: s = "babad"
Output: "bab"
Tushuntirish: "aba" ham to'g'ri javob hisoblanadi.
kod
Input: s = "cbbd"
Output: "bb"
kod
Input: s = "a"
Output: "a"

Maslahatlar

  1. Har bir palindromning "markazi" bo'lishi mumkinligini o'ylab ko'ring — markazdan ikki tomonga kengayib borish (expand around center) orqali har bir mumkin bo'lgan palindromni tekshirish mumkin.
  2. Har bir indeks i uchun ikki xil markazni tekshiring: toq uzunlikdagi palindromlar uchun (i,i) va juft uzunlikdagilar uchun (i,i+1); har ikkalasidan chap va o'ng tomonga bir xil belgi turgunicha kengaytirib boring va shu jarayonda topilgan eng uzun palindromning boshlanish/tugash indekslarini saqlab qo'ying.