Сложность: easy
Учитывая две строки,
needle и haystack, верните индекс первого вхождения needle в haystack, или -1, если needle не является частью haystack. Пример:
Input: haystack = "sadbutsad", needle = "sad"
Output: 0
👨💻 Алгоритм:
1⃣Обработка граничного случая:
- Если
needle — пустая строка, вернуть 0 (по определению). 2⃣Итерация по возможным позициям:
- Проходим по всем индексам
i от 0 до len(haystack) - len(needle), - На каждой итерации сравниваем срез
haystack[i:i+len(needle)] с needle. 3⃣Проверка совпадений:
- Если подстроки совпали — возвращаем текущий индекс
i. - Если не нашли ни одного совпадения — возвращаем
-1. 😎 Решение:
func strStr(haystack string, needle string) int {
n := len(needle)
if n == 0 {
return 0
}
for i := 0; i <= len(haystack)-n; i++ {
if haystack[i:i+n] == needle {
return i
}
}
return -1
}Ставь 👍 и забирай 📚 Базу знаний