給定乙個單詞陣列和乙個長度 maxwidth,重新排版單詞,使其成為每行恰好有 maxwidth 個字元,且左右兩端對齊的文字。
你應該使用「貪心演算法」來放置給定的單詞;也就是說,盡可能多地往每行中放置單詞。必要時可用空格 』 』 填充,使得每行恰好有 maxwidth 個字元。
要求盡可能均勻分配單詞間的空格數量。如果某一行單詞間的空格不能均勻分配,則左側放置的空格數要多於右側的空格數。
文字的最後一行應為左對齊,且單詞之間不插入額外的空格。
說明:單詞是指由非空格字元組成的字串行。
每個單詞的長度大於 0,小於等於 maxwidth。
輸入單詞陣列 words 至少包含乙個單詞。
示例:
例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 "
]
這道題看起來複雜,實際上並不太困難,讀懂題目很重要。
按照題目要求,逐行填充的單詞和空格即可。
幾個要點:1. 每行的空格如何分配?2. 最後一行單獨處理;3. 若一行內只能容納乙個單詞,應該單獨填充後面的空格。
**:
class
solution
else
continue;}
//頭部第乙個單詞
record +
= words[i++];
//若已經到達了最後一行,則單獨處理
if( j == words.
size()
)//除了放置在頭部的單詞,還剩下 count_words 個單詞
int count_words = j - i +1;
//統計有效的空格數
int count_space =0;
for(
int k = i; k <= j && k < words.
size()
; k++
) count_space +
= words[k]
.size()
; count_space = maxwidth - count_space - record.
size()
;while
( count_space && count_words)
//若每行只有乙個單詞,則需要在尾部進行填充空格
while
( record.
size()
< maxwidth)
record +
=' '
;
res.
push_back
( record);}
return res;}}
;
文字左右對齊
leetcode 給定乙個單詞陣列和乙個長度 maxwidth,重新排版單詞,使其成為每行恰好有 maxwidth 個字元,且左右兩端對齊的文字。你應該使用 貪心演算法 來放置給定的單詞 也就是說,盡可能多地往每行中放置單詞。必要時可用空格 填充,使得每行恰好有 maxwidth 個字元。要求盡可能...
整段文字左右對齊
text align justify text justify inter ideograph text justify版本 ie5 專有屬性 繼承性 無 語法 text justify auto distribute distribute all lines distribute center l...
68 文字左右對齊
給定乙個單詞陣列和乙個長度 maxwidth,重新排版單詞,使其成為每行恰好有 maxwidth 個字元,且左右兩端對齊的文字。你應該使用 貪心演算法 來放置給定的單詞 也就是說,盡可能多地往每行中放置單詞。必要時可用空格 填充,使得每行恰好有 maxwidth 個字元。要求盡可能均勻分配單詞間的空...