Categorías
Algorithms Interview Java

LeetCode – Contar y decir (Java)

Problema

La secuencia de contar y decir es la secuencia de números enteros que comienza de la siguiente manera:
1, 11, 21, 1211, 111221, …

1 is read off as "one 1" or 11.
11 is read off as "two 1s" or 21.
21 is read off as "one 2, then one 1" or 1211.

Dado un número entero n, genera la enésima secuencia.

Solución Java

El problema se puede resolver mediante una iteración simple. Consulte la solución Java a continuación:

public String countAndSay(int n) {
	if (n <= 0)
		return null;
 
	String result = "1";
	int i = 1;
 
	while (i < n) {
		StringBuilder sb = new StringBuilder();
		int count = 1;
		for (int j = 1; j < result.length(); j++) {
			if (result.charAt(j) == result.charAt(j - 1)) {
				count++;
			} else {
				sb.append(count);
				sb.append(result.charAt(j - 1));
				count = 1;
			}
		}
 
		sb.append(count);
		sb.append(result.charAt(result.length() - 1));
		result = sb.toString();
		i++;
	}
 
	return result;
}

  LeetCode - Suma máxima de rectángulo no mayor que K (Java)

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *