首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

LeetCode: Text Justification - 文本左右對齊排版

     編輯:關於C++

問題描述

給定單詞數組和行寬 L,按貪心策略填裝單詞,每行恰好 L 字符,左右對齊(最後一行左對齊)。多餘空格盡量均勻分布在單詞間隙,左側間隙優先多分一個。

算法流程

  1. 貪心收集當前行單詞,直到加入下一詞會超寬。
  2. 若是最後一行或只有一詞:左對齊,單詞間單空格,末尾補空格。
  3. 否則:計算總空格數 spaces = L - 字符總長,間隙數 gaps = 詞數 - 1。
    基礎空格 base = spaces / gaps,額外空格 extra = spaces % gaps。
    前 extra 個間隙用 base+1 空格,其餘用 base 空格。

Java 實現要點

用 ArrayList 暫存行單詞,StringBuilder 構建行字符串。注意最後一行判斷條件:i == words.length - 1。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved