68. Text Justification
来源:互联网 发布:淘宝代办工商营业执照 编辑:程序博客网 时间:2024/06/07 21:13
字符串对齐。
别人的分析:
一行一行的来处理,首先要做的就是确定每一行能放下的单词数,这个不难,就是比较n个单词的长度和加上n - 1个空格的长度跟给定的长度L来比较即可,找到了一行能放下的单词个数,然后计算出这一行存在的空格的个数,是用给定的长度L减去这一行所有单词的长度和。得到了空格的个数之后,就要在每个单词后面插入这些空格,这里有两种情况,比如某一行有两个单词"to" 和 "a",给定长度L为6,如果这行不是最后一行,那么应该输出"to a",如果是最后一行,则应该输出 "to a ",所以这里需要分情况讨论,最后一行的处理方法和其他行之间略有不同。最后一个难点就是,如果一行有三个单词,这时候中间有两个空,如果空格数不是2的倍数,那么左边的空间里要比右边的空间里多加入一个空格,那么我们只需要用总的空格数除以空间个数,能除尽最好,说明能平均分配,除不尽的话就多加个空格放在左边的空间里。
这道题在写每一行的时候,采用的方法是,把总的spaces个数记录下来,每写一个,就在spaces里减掉相应的spaces,这样不会写乱。
class Solution {public: vector<string> fullJustify(vector<string>& words, int maxWidth) { vector<string> res; int i = 0; while (i < words.size()) { int j = i, len = 0; while (j < words.size() && len + words[j].size() + j - i <= maxWidth) { len += words[j++].size(); } string out; int space = maxWidth - len; for (int k = i; k < j; ++k) { out += words[k]; if (space > 0) { int tmp; if (j == words.size()) { if (j - k == 1) tmp = space; else tmp = 1; } else { if (j - k - 1 > 0) { if (space % (j - k - 1) == 0) //j-k+1是空格的个数 tmp = space / (j - k - 1); else tmp = space / (j - k - 1) + 1; } else tmp = space; } out.append(tmp, ' '); space -= tmp; } } res.push_back(out); i = j; } return res; }};
阅读全文
0 0
- LeetCode 68. Text Justification
- LeetCode --- 68. Text Justification
- [Leetcode] 68. Text Justification
- [leetcode] 68.Text Justification
- 68. Text Justification
- 68. Text Justification
- [leetcode] 68. Text Justification
- LeetCode 68. Text Justification
- Leetcode 68. Text Justification
- LeetCode 68. Text Justification
- 68. Text Justification
- leetcode 68. Text Justification
- 68. Text Justification
- [LeetCode] 68. Text Justification
- LeetCode-68.Text Justification
- 68. Text Justification
- leetcode 68. Text Justification
- 68. Text Justification
- 五年逆袭,腾讯手机管家如何从“零”到“一”
- 智能家庭网关将普及 捷稀推"骇客H3"深耕高端市场
- 畅享狂欢盛宴 电脑管家校园嘉年华圆满结束
- linq语句中多个记录合成一条记录
- 数据分析之Pandas-03多行索引和数据处理
- 68. Text Justification
- Java编程_素数
- 概率DP 收集邮票
- 区间dp小结
- 爱奇艺2018秋季校招C++工程师(第三场)编程题
- WiFi安全成全球难题 手机管家是保障
- DBCP老矣,但能饭
- Unity-合集简介
- UVA