Menu
CoddyTech

Find the First Occurrence in a String

Sana haystack ve needle adında iki dize veriliyor. needle ifadesinin ilk geçtiği yerin haystack içindeki indeksini 0'dan başlayarak döndür. needle, haystack içinde hiç geçmiyorsa -1 döndür. find veya indexOf gibi yerleşik bir alt dize arama işlevini çağırmak yerine aramayı kendin yaz.

Fonksiyon

strStr(haystack: string, needle: string) → integer
haystackstring
içinde arama yapılacak metin
needlestring
aranacak dize
Döndürürinteger
needle'ın ilk kopyasının başladığı dizin ya da hiç yoksa -1

Kısıtlar

  • 1 ≤ haystack.length ≤ 5 × 104
  • 1 ≤ needle.length ≤ 5 × 104
  • Her iki dize de yalnızca küçük İngilizce harfler içerir.
  • needle, haystack'den daha uzun olabilir. Bu durumda içinde yer alamaz ve cevap -1 olur.

Örnekler

Girdi
haystack = "bananarama"needle = "ana"
Çıktı
1
Açıklama
1, 2 ve 3 indekslerindeki harfler ana sözcüğünü oluşturur. İkinci bir kopya 3. indekste başlar ve ilk kopyayla örtüşür, ancak cevap ilk kopyadır; dolayısıyla cevap 1'dir.

lock iconGönderirken +16 gizli test

challenge icon

Ek soru

needle'ın başladığı tüm indeksleri, çakışan kopyalar da dahil olmak üzere, yine O(n + m) zamanda döndürebilir misin?

Kodu sıfırla
def strStr(haystack, needle):
    # Kodu buraya yazın
Test durumları

Durum 1

Durum 2

Durum 3

Girdi

haystack = "bananarama"
needle = "ana"

Beklenen

1