Encontrar repeticiones

Published by Matt in

Crea una función que acepte una cadena y agrupe los valores repetidos. Los grupos deben tener la siguiente estructura: [[value, first_index, last_index, times_repeated], ..., [value, first_index, last_index, times_repeated]].

  • value: Carácter evaluado.
  • first_index: Índice de la primera aparición del carácter.
  • last_index: Índice de la última aparición del carácter.
  • times_repeated: Número de veces consecutivas que se repite el carácter.

Ejemplos

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]]

Notas

  • Una cadena vacía debe devolver un arreglo vacío: "" ➞ []
  • Los valores que no se repiten deben comenzar y terminar en el mismo índice.