分发文本的算法

问题描述 投票:0回答:1

我正在尝试复制游戏的算法,基本上该方法应该采用文本和数字。该方法预计返回一个整数数组,其元素数量由第二个参数指定。整数数组中所有元素的总和应与文本字符串参数的长度完全匹配。挑战在于逻辑,因为数组中的每个元素代表文本字符串的一部分,这些部分的总和应该等于文本字符串的长度,但不是有序的。

示例:

  • 对于具有 6 个所需元素的输入
    lllChoppinglll
    ,该方法应返回:
    [3, 2, 2, 2, 3, 2]
  • 对于具有 12 个所需元素的输入
    lllChoppinglll
    ,该方法应返回:
    [2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1]
  • 对于具有 4 个所需元素的输入
    lllFarminglll
    ,该方法应返回:
    [4, 4, 3, 2]
  • 对于具有 5 个所需元素的输入
    lllMininglll
    ,该方法应返回:
    [3, 2, 2, 2, 3]
  • 对于具有 4 个所需元素的输入
    lllMininglll
    ,该方法应返回:
    [3, 3, 3, 3]

如何确定?

algorithm
1个回答
0
投票

实现此目的的一种方法是使用Bresenham 线算法。该算法确定如何跨多个像素绘制一条线,同时将线划分为适当的线段。

在您的情况下,第二个参数是线条的像素高度。算法的输出,每行中的像素数,代表每个段的大小。

维基百科页面包含用于实现该算法的伪代码。

© www.soinside.com 2019 - 2024. All rights reserved.