自己做网站需要哪些流程,成都网络营销策划,哈尔滨微网站建设公司,江西合创建设工程有限公司 网站文章目录1. 题目2. 解题1. 题目
给你一个 rows x cols 的屏幕和一个用 非空 的单词列表组成的句子#xff0c;请你计算出给定句子可以在屏幕上完整显示的次数。
注意#xff1a; 一个单词不能拆分成两行。 单词在句子中的顺序必须保持不变。 在一行中 的两个连续单词必须用…
文章目录1. 题目2. 解题1. 题目
给你一个 rows x cols 的屏幕和一个用 非空 的单词列表组成的句子请你计算出给定句子可以在屏幕上完整显示的次数。
注意 一个单词不能拆分成两行。 单词在句子中的顺序必须保持不变。 在一行中 的两个连续单词必须用一个空格符分隔。 句子中的单词总量不会超过 100。 每个单词的长度大于 0 且不会超过 10。 1 ≤ rows, cols ≤ 20,000.
示例 1
输入
rows 2, cols 8,
句子 sentence [hello, world]
输出
1
解释
hello---
world---
字符 - 表示屏幕上的一个空白位置。示例 2
输入
rows 3, cols 6,
句子 sentence [a, bcd, e]
输出
2
解释
a-bcd-
e-a---
bcd-e-
字符 - 表示屏幕上的一个空白位置。示例 3
输入
rows 4, cols 5,
句子 sentence [I, had, apple, pie]
输出
1
解释
I-had
apple
pie-I
had--
字符 - 表示屏幕上的一个空白位置。来源力扣LeetCode 链接https://leetcode-cn.com/problems/sentence-screen-fitting 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题
参考大佬的题解先看看1行能不能放下完整的句子然后不能放下完整句子的空位从 i 单词开始放i0…n-1下一行的开头是哪个单词
class Solution {
public:int wordsTyping(vectorstring sentence, int rows, int cols) {int n sentence.size(), i, j, len 0, ans 0;vectorint wordlen(sentence.size());for(i 0; i n; i){len sentence[i].size()1;wordlen[i] sentence[i].size();}len--;//一个句子的长度if(cols len)//能放下完整的句子{ans cols/(len1)*rows;//带一个空格能放下几个句子cols cols%(len1);//只用考虑剩余的不完整空格if(cols%(len1) len)//不带空格正好还有一个位置{ans rows;return ans;}}vectorint dp(n);//每行从i单词开始填可以填到哪个单词for(i 0 ;i n; i){j i;len 0;while(lenwordlen[j] cols){len wordlen[j]1;//1是空格j (j1)%n;}dp[i] j;//i单词开始放放完该行可以到j单词不含j}for(i 0, j 0; i rows; i){if(dp[j] j)//放满了一行dp[j]跑到 j 前面去了ans;j dp[j];//下一行从dp[j]单词开始放}return ans;}
};0 ms 7.6 MB 我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号Michael阿明一起加油、一起学习进步