Categorías
Algorithms

LeetCode – Palabras inversas en una cadena (Java)

Dada una cadena de entrada, invierta la cadena palabra por palabra.

Por ejemplo, dado s = «el cielo es azul», devuelve «el azul es el cielo».

Solución Java

Este problema es bastante sencillo. Primero dividimos la cadena en una matriz de palabras, y luego iteramos a través de la matriz y agregamos cada elemento a una nueva cadena. Nota: Se debe utilizar StringBuilder para evitar crear demasiadas cadenas. Si la cadena es muy larga, usar String no es escalable ya que String es inmutable y se crearán demasiados objetos y se recolectarán basura.

class Solution {
	public String reverseWords(String s) {
		if (s == null || s.length() == 0) {
			return "";
		}
 
		// split to words by space
		String[] arr = s.split(" ");
		StringBuilder sb = new StringBuilder();
		for (int i = arr.length - 1; i >= 0; --i) {
			if (!arr[i].equals("")) {
				sb.append(arr[i]).append(" ");
			}
		}
		return sb.length() == 0 ? "" : sb.substring(0, sb.length() - 1);
	}
}

  LeetCode - Triángulo (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 *