Categorías
Algorithms

LeetCode – Palabras inversas en una cadena II (Java)

Dada una cadena de entrada, invierta la cadena palabra por palabra. Una palabra se define como una secuencia de caracteres sin espacios.

La cadena de entrada no contiene espacios iniciales o finales y las palabras siempre están separadas por un solo espacio.

Por ejemplo,
Dado s = «el cielo es azul»,
volver «el azul es el cielo».

¿Podría hacerlo en el lugar sin asignar espacio adicional?

Solución Java

public void reverseWords(char[] s) {
    int i=0;
    for(int j=0; j<s.length; j++){
        if(s[j]==' '){
            reverse(s, i, j-1);        
            i=j+1;
        }
    }
 
    reverse(s, i, s.length-1);
 
    reverse(s, 0, s.length-1);
}
 
public void reverse(char[] s, int i, int j){
    while(i<j){
        char temp = s[i];
        s[i]=s[j];
        s[j]=temp;
        i++;
        j--;
    }
}

  LeetCode - Lista de clasificación (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 *