LeetCode Problem
418. Sentence Screen Fitting🔒
Link to LeetCode 🔒[locked - premium question]
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.
-Total words in the sentence won't exceed 100.
-Length of each word is greater than 0 and won't exceed 10.
-1 ≤ rows, cols ≤ 20,000.
Input: rows = 2, cols = 8, sentence = ["hello", "world"]
Output: 1
Explanation:
hello---
world---
The character '-' signifies an empty space on the screen.
Input: rows = 3, cols = 6, sentence = ["a", "bcd", "e"]
Output:2
Explanation:
a-bcd-
e-a---
bcd-e-
The character '-' signifies an empty space on the screen.
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;
}