Menu
CoddyTech

Find the First Occurrence in a String

Você recebe duas strings, haystack e needle. Retorne o índice em haystack onde começa a primeira ocorrência de needle, contando a partir de 0. Se needle nunca aparecer em haystack, retorne -1. Implemente a busca você mesmo, em vez de chamar uma função integrada de busca por substring, como find ou indexOf.

Função

strStr(haystack: string, needle: string) → integer
haystackstring
o texto em que pesquisar
needlestring
a string a ser procurada
Retornainteger
o índice onde começa a primeira ocorrência de needle ou -1 se não houver nenhuma

Restrições

  • 1 ≤ haystack.length ≤ 5 × 104
  • 1 ≤ needle.length ≤ 5 × 104
  • Ambas as strings contêm apenas letras minúsculas do inglês.
  • needle pode ser maior que haystack. Então, ele não pode aparecer, e a resposta é -1.

Exemplos

Entrada
haystack = "bananarama"needle = "ana"
Saída
1
Explicação
As letras nos índices 1, 2 e 3 formam ana. Uma segunda cópia começa no índice 3 e se sobrepõe à primeira, mas a resposta é a primeira cópia, então é 1.

lock icon+16 testes ocultos ao enviar

challenge icon

Para ir além

Você consegue retornar todos os índices em que needle começa, incluindo cópias sobrepostas, ainda em O(n + m) de tempo?

Redefinir código
def strStr(haystack, needle):
    # Escreva o código aqui
Casos de teste

Caso 1

Caso 2

Caso 3

Entrada

haystack = "bananarama"
needle = "ana"

Esperado

1