Soy un nuevo desarrollador y recibí algunas preguntas de una prueba esta semana y no pude encontrar una manera de resolver esta. ¿Algunas ideas?
Creo que el problema es ordenar una cadena de Javascript que tiene que convertir las letras en una fila en una nueva cadena que agrega las veces que la letra se repite en la cadena; ejemplo:
Para la string = 'AAABBBBCCX9999!!!!!!**' debería devolver string = '3A4B2CX496!2*'
Probé algunos métodos de cadenas y matrices, pero no me acerqué. No tengo prisa ya que la prueba se ha ido. Pero sería divertido verlo resuelto; ¡gracias a todos!
Todavía estoy aprendiendo, así que gracias a todos por sus respuestas y comentarios sobre cómo usar el desbordamiento de pila.
Funciona haciendo coincidir en la cadena todas las secuencias de caracteres consecutivos, lo que le brinda una matriz de cada grupo de caracteres consecutivos, que luego se asignan a una nueva cadena de la longitud del grupo y el primer carácter se junta ( AAA se convierte en 3A ( 'AAA'.length + 'AAA'[0] )). Luego, cada cadena se vuelve a unir con .join('') .
const seq = 'AAABBBBCCX9999!!!!!!**' .match(/(.)\1*/g).map(s => s.length + s[0]).join(''); console.log(seq);