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; } |