### 題目
給定乙個單詞陣列和乙個長度 maxwidth,重新排版單詞,使其成為每行恰好有 maxwidth 個字元,且左右兩端對齊的文字。
你應該使用「貪心演算法」來放置給定的單詞;也就是說,盡可能多地往每行中放置單詞。必要時可用空格 ' ' 填充,使得每行恰好有 maxwidth 個字元。
要求盡可能均勻分配單詞間的空格數量。如果某一行單詞間的空格不能均勻分配,則左側放置的空格數要多於右側的空格數。
文字的最後一行應為左對齊,且單詞之間不插入額外的空格。
說明:單詞是指由非空格字元組成的字串行。
每個單詞的長度大於 0,小於等於 maxwidth。
輸入單詞陣列 words 至少包含乙個單詞。
示例:輸入:
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 68 文字左右對齊
原理很簡單,但是寫起來比較複雜,首先將不超過maxwidth的字串放入乙個新的陣列result,不要忽略空格所佔空間 對result進行處理,首先去除字串最後面的乙個或多個空格,然後計算去除空格後的字串大小,用過最大大小減去去除空格之後的字串大小,得到d 用除以單詞個數 1 即為原來每個空格位置需要...
LeetCode68 文字左右對齊
給定乙個單詞陣列和乙個長度 maxwidth,重新排版單詞,使其成為每行恰好有 maxwidth 個字元,且左右兩端對齊的文字。你應該使用 貪心演算法 來放置給定的單詞 也就是說,盡可能多地往每行中放置單詞。必要時可用空格 填充,使得每行恰好有 maxwidth 個字元。要求盡可能均勻分配單詞間的空...
LeetCode68文字左右對齊
1.先取出一行能夠容納的單詞,將這些單詞根據規則填入一行 2.計算出額外空格的數量 spacecount,額外空格就是正常書寫用不到的空格 2.1除去所有單詞的長度 3.平均分布 簡單來說就是商和餘數的計算 4.特殊處理 4.1一行只有乙個單詞,單詞左對齊,右側填滿空格 4.2最後一行,所有單詞左對...