Categorías
Algorithms

LeetCode – Ajuste de pantalla de frases (Java)

Dada una pantalla de filas x columnas y una oración representada por una lista de palabras no vacías, averigüe cuántas veces se puede colocar la oración dada en la pantalla.

Nota:
Una palabra no se puede dividir en dos líneas.
El orden de las palabras en la oración no debe modificarse.
Dos palabras consecutivas en una línea deben estar separadas por un solo espacio.

Solución Java

public int wordsTyping(String[] sentence, int rows, int cols) {
    int i = 0;
    int cnt = 0;
 
    int k = 0;  //kth word
    int colLen = cols;
 
    while (i < rows) {
        String sen = sentence[k++];
        if (sen.length() > cols) {
            return 0;
        }
 
        if (colLen >= sen.length()) {
            colLen = colLen - sen.length() - 1;
        } else {
            i++;
            colLen = cols;
            colLen = colLen - sen.length() - 1;
        }
 
        if (i >= rows) {
            return cnt;
        }
 
        if (k == sentence.length) {
            cnt++;
            k = 0;
        }
    }
 
    return cnt;
}

  LeetCode - Construya un árbol binario a partir de Preorder y Inorder Traversal (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 *