195 / 205
LeetCode · HardQiyin30 ball· ~40 daqiqa

Substring with Concatenation

Satr s va bir xil uzunlikdagi so'zlardan iborat words massivi berilgan. words massividagi barcha so'zlarning har qanday tartibdagi kombinatsiyasidan iborat bo'lgan qism-satrlarning boshlang'ich indekslarini toping.

example.go
func solve(s string, words []string) []int {
    // ...
}

Misollar

kod
Input: s = "barfoothefoobarman", words = ["foo","bar"]
Output: [0, 9]
kod
Input: s = "wordgoodgoodgoodbestword", words = ["word","good","best","word"]
Output: []
kod
Input: s = "barfoofoobarthefoobarman", words = ["bar","foo","the"]
Output: [6, 9, 12]

Maslahatlar

  1. Barcha so'zlar bir xil uzunlikda ekanidan foydalaning — bu degani, s ichidagi har bir mumkin bo'lgan boshlang'ich pozitsiyani "so'z uzunligi" qadamlar bilan bo'lib, har bir bo'lakni bitta so'zga tenglashtirib tekshirish mumkin.
  2. words dagi har bir so'zning nechta marta uchrashini xesh-jadvalda saqlang. s bo'ylab har bir mumkin boshlang'ich indeksdan boshlab, ketma-ket wordLen uzunlikdagi bo'laklarni ajratib, ularning har biri kerakli so'zlar to'plamida borligini va hali ortiqcha ishlatilmaganini (joriy tekshiruv uchun alohida hisoblagich bilan) nazorat qiling; agar barcha numWords ta bo'lak mos kelsa, shu boshlang'ich indeksni natijaga qo'shing.