我正在寻找一种方法来执行文本对齐(左右冲洗)。每个输出行的最大宽度为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。但这对我来说似乎很复杂。如果这是全文证明问题的最佳(也是最简单)解决方案,那么如果有人能用简单的词语解释相同的话,那将会很棒。