小编ral*_*lle的帖子

算法:使用空格将字符串拆分为N个部分,这样所有部分的长度几乎相同

我正在寻找一种算法,它采用一个字符串并将其分成一定数量的部分.这些部件应包含完整的字样(因此用空格来分割字符串),部件的长度应几乎相同,或者包含尽可能长的部分.

我知道编写一个可以做我想要的功能并不难,但我想知道是否有一个经过充分验证的快速算法用于此目的?

编辑:为了澄清我的问题,我将向您描述我想要解决的问题.

我生成固定宽度的图像.在这些图像中,我使用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)

希望我能更清楚地解释我在寻找什么.

string algorithm split

5
推荐指数
1
解决办法
5986
查看次数

标签 统计

algorithm ×1

split ×1

string ×1