Encontrar repetições

Published by Matt in

Crie uma função que aceite uma string e agrupe os valores repetidos. Os grupos devem ter a seguinte estrutura: [[value, first_index, last_index, times_repeated], ..., [value, first_index, last_index, times_repeated]].

  • value: Caractere sendo avaliado.
  • first_index: Índice da primeira ocorrência do caractere.
  • last_index: Índice da última ocorrência do caractere.
  • times_repeated: Número de vezes consecutivas que o caractere se repete.

Exemplos

find_repeating("a") ➞ [["a", 0, 0, 1]]

find_repeating("aabbb") ➞ [["a", 0, 1, 2], ["b", 2, 4, 3]]

find_repeating("1337") ➞ [["1", 0, 0, 1], ["3", 1, 2, 2], ["7", 3, 3, 1]]

find_repeating("aabbbaabbb") ➞ [["a", 0, 1, 2], ["b", 2, 4, 3], ["a", 5, 6, 2], ["b", 7, 9, 3]]

Observações

  • Uma string vazia deve retornar um array vazio: "" ➞ []
  • Os valores que não se repetem devem começar e terminar no mesmo índice.