# 418 Sentence Screen Fitting

Given a `rows x cols` screen and a `sentence` represented as a list of strings, return the number of times the given sentence can be fitted on the screen.

The order of words in the sentence must remain unchanged, and a word cannot be split into two lines. A single space must separate two consecutive words in a line.

Example 1:

``````Input: sentence = ["hello","world"], rows = 2, cols = 8
Output: 1
Explanation:
hello---
world---
The character '-' signifies an empty space on the screen.
``````

Example 2:

``````Input: sentence = ["a", "bcd", "e"], rows = 3, cols = 6
Output: 2
Explanation:
a-bcd-
e-a---
bcd-e-
The character '-' signifies an empty space on the screen.
``````

Example 3:

``````Input: sentence = ["i","had","apple","pie"], rows = 4, cols = 5
Output: 1
Explanation:
• `1 <= sentence.length <= 100`
• `1 <= sentence[i].length <= 10`
• `sentence[i]` consists of lowercase English letters.
• `1 <= rows, cols <= 2 * 104`
 `````` 1 2 3 4 5 6 7 8 9 10 11 12 `````` ``````class Solution: def wordsTyping(self, sentence: List[str], rows: int, cols: int) -> int: s = ' '.join(sentence) + ' ' start, L = 0, len(s) for i in range(rows): start += cols if s[start % L] == ' ': start += 1 else: while start > 0 and s[(start-1) % L] != ' ': start -= 1 return start // L``````