2052. Minimum Cost to Separate Sentence Into Rows
Description
You are given a string sentence
containing words separated by spaces, and an integer k
. Your task is to separate sentence
into rows where the number of characters in each row is at most k
. You may assume that sentence
does not begin or end with a space, and the words in sentence
are separated by a single space.
You can split sentence
into rows by inserting line breaks between words in sentence
. A word cannot be split between two rows. Each word must be used exactly once, and the word order cannot be rearranged. Adjacent words in a row should be separated by a single space, and rows should not begin or end with spaces.
The cost of a row with length n
is (k - n)2
, and the total cost is the sum of the costs for all rows except the last one.
- For example if
sentence = "i love leetcode"
andk = 12
:<ul> <li>Separating <code>sentence</code> into <code>"i"</code>, <code>"love"</code>, and <code>"leetcode"</code> has a cost of <code>(12 - 1)<sup>2</sup> + (12 - 4)<sup>2</sup> = 185</code>.</li> <li>Separating <code>sentence</code> into <code>"i love"</code>, and <code>"leetcode"</code> has a cost of <code>(12 - 6)<sup>2</sup> = 36</code>.</li> <li>Separating <code>sentence</code> into <code>"i"</code>, and <code>"love leetcode"</code> is not possible because the length of <code>"love leetcode"</code> is greater than <code>k</code>.</li> </ul> </li>
Return the minimum possible total cost of separating sentence
into rows.
Example 1:
Input: sentence = "i love leetcode", k = 12 Output: 36 Explanation: Separating sentence into "i", "love", and "leetcode" has a cost of (12 - 1)2 + (12 - 4)2 = 185. Separating sentence into "i love", and "leetcode" has a cost of (12 - 6)2 = 36. Separating sentence into "i", "love leetcode" is not possible because "love leetcode" has length 13. 36 is the minimum possible total cost so return it.
Example 2:
Input: sentence = "apples and bananas taste great", k = 7 Output: 21 Explanation Separating sentence into "apples", "and", "bananas", "taste", and "great" has a cost of (7 - 6)2 + (7 - 3)2 + (7 - 7)2 + (7 - 5)2 = 21. 21 is the minimum possible total cost so return it.
Example 3:
Input: sentence = "a", k = 5 Output: 0 Explanation: The cost of the last row is not included in the total cost, and since there is only one row, return 0.
Constraints:
1 <= sentence.length <= 5000
1 <= k <= 5000
- The length of each word in
sentence
is at mostk
. sentence
consists of only lowercase English letters and spaces.sentence
does not begin or end with a space.- Words in
sentence
are separated by a single space.
Solutions
Solution 1
|
|
|
|
|
|
|
|