LeetCode – Sentence Screen Fitting (Java)

Given a rows x cols screen and a sentence represented by a list of non-empty words, find how many times the given sentence can be fitted on the screen.

Note:
A word cannot be split into two lines.
The order of words in the sentence must remain unchanged.
Two consecutive words in a line must be separated by a single space.

Java Solution

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

Leave a Comment