我正在寻找一种方法来执行文本对齐(左右齐平)。每个输出行的最大宽度为 M 个字符。不允许断词。
例如,请参阅此维基百科页面中的“对齐(左右齐平)”:http://en.wikipedia.org/wiki/Justification_(typesetting)。
我知道有一个动态编程解决方案可以优化左对齐,右对齐,即在行尾均匀分配额外的空间,这样额外空间的成本是最优的(这也被称为“自动换行” '问题或'打印整齐'问题)。但是,对于全文对齐问题,我无法得出动态编程或贪婪方法。
谷歌搜索带我找到基于马尔可夫链编程的文本对齐:http ://www.rose-hulman.edu/Users/faculty/young/OldFiles/CS-Classes/csse220/200820/web/Programs/Markov/justification.html 。但这对我来说似乎很复杂。如果这是对全文证明问题的最佳(也是最简单)的解决方案,那么如果有人能用简单的语言解释同样的问题,那就太好了。