Menu
CoddyTech

Find the First Occurrence in a String

Kamu mendapatkan dua string, haystack dan needle. Kembalikan indeks di haystack tempat kemunculan pertama needle dimulai, dihitung dari 0. Jika needle tidak pernah muncul di haystack, kembalikan -1. Tulis sendiri pencariannya, jangan panggil pencarian substring bawaan seperti find atau indexOf.

Fungsi

strStr(haystack: string, needle: string) → integer
haystackstring
teks yang ingin dicari
needlestring
string yang dicari
Mengembalikaninteger
indeks tempat salinan pertama needle dimulai, atau -1 jika tidak ada

Batasan

  • 1 ≤ haystack.length ≤ 5 × 104
  • 1 ≤ needle.length ≤ 5 × 104
  • Kedua string hanya berisi huruf kecil dalam alfabet Inggris.
  • needle mungkin lebih panjang daripada haystack. Dalam kasus itu, needle tidak mungkin muncul, dan jawabannya adalah -1.

Contoh

Input
haystack = "bananarama"needle = "ana"
Output
1
Penjelasan
Huruf pada indeks 1 hingga 3 membentuk ana. Salinan lainnya dimulai pada indeks 3 dan bertumpang tindih dengannya, tetapi salinan pertama yang dihitung, jadi jawabannya adalah 1.
challenge icon

Pertanyaan lanjutan

Bisakah kamu mengembalikan setiap indeks tempat needle dimulai, termasuk kemunculan yang saling tumpang tindih, tetap dalam waktu O(n + m)?

Reset kode
def strStr(haystack, needle):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

haystack = "bananarama"
needle = "ana"

Output yang diharapkan

1