我正在寻找一种算法,它采用一个字符串并将其分成一定数量的部分.这些部件应包含完整的字样(因此用空格来分割字符串),部件的长度应几乎相同,或者包含尽可能长的部分.
我知道编写一个可以做我想要的功能并不难,但我想知道是否有一个经过充分验证的快速算法用于此目的?
编辑:为了澄清我的问题,我将向您描述我想要解决的问题.
我生成固定宽度的图像.在这些图像中,我使用PHP中的GD和Freetype编写用户名.由于我有一个固定的宽度,我想把它们分成2行或3行,如果它们不合适的话.
为了尽可能多地填充空间,我希望以每行包含尽可能多的单词的方式拆分名称.有了这个,我的意思是在一行中应该尽可能多的单词,以保持每行的长度接近整个文本块的平均行长度.因此,如果有一个长单词和两个短单词,那么如果两个短单词使所有行相等,那么它们应该站在一行上.
(然后我使用1,2或3行计算文本块宽度,如果它适合我的图像,我会渲染它.就好像有3行并且它不适合我减少字体大小,直到一切都很好.)
示例:
This is a long text
应该显示类似的内容:
This is a
long text
Run Code Online (Sandbox Code Playgroud)
要么:
This is
a long
text
Run Code Online (Sandbox Code Playgroud)
但不是:
This
is a long
text
Run Code Online (Sandbox Code Playgroud)
而且不是:
This is a long
text
Run Code Online (Sandbox Code Playgroud)
希望我能更清楚地解释我在寻找什么.