描述
给定一个单词数组和一个宽度maxWidth,格式化文本,使每行具有刚好maxWidth个字符并完全(左和右)对齐。
你应该用贪心法打包你的单词; 也就是说,在每行中包含尽可能多的单词。 必要时填充额外的空格,以便每行具有正确的maxWidth字符。
单词之间的额外空格应尽可能均匀分布。
如果一行上的空格数不均匀分配,则左侧的空插槽将分配比右侧插槽更多的空格。
对于最后一行文本,它应该是左对齐的,并且在单词之间不插入额外的空格。
- 单词定义为仅由非空格字符组成的字符序列。
- 每个单词的长度保证大于0且不超过maxWidth。
- 输入数组words至少包含一个单词。
点击查看 LeetCode/LintCode 题解丨一周爆刷字符串:文字并排
样例
样例 1:
输入:
words = ["This", "is", "an", "example", "of", "text", "justification."]
maxWidth = 16
输出:
[
"This is an",
"example of text",
"justification. "
]
样例 2:
输入:
words = ["What","must","be","acknowledgment","shall","be"]
maxWidth = 16
输出:
[
"What must be",
"acknowledgment ",
"shall be "
]
说明:请注意,最后一行是 "shall be " 而不是 "shall be",
因为最后一行必须左对齐而不是完全对齐。
请注意,第二行也是左对齐的,因为它只包含一个单词。
样例 3:
输入:
words = ["Science","is","what","we","understand","well","enough","to","explain",
"to","a","computer.","Art","is","everything","else","we","do"]
maxWidth = 20
输出:
[
"Science is what we",
"understand well",
"enough to explain to",
"a computer. Art is",
"everything else we",
"do "
]
点击查看更多字符串题集及解题思路
LeetCode/LintCode 题解丨一周爆刷字符串:神奇字符串
LeetCode/LintCode 题解丨一周爆刷字符串:查找和替换模式