テキストの任意の文字列を指定すると、テキストはテンプレートの別々のセクションにグループ化されます。各セクションは異なる長さおよび最大長パラメータを有する。解は、その境界内に収まる限り、セクションに最適と見なすことができます。欲張りな解決法は、いくつかのセクションが最小値を満たさない結果になる可能性があります。つまり、ソリューション全体が受け入れられないということです。テキストグループ化アルゴリズム
これを行うアルゴリズムを効率的に構築するのに問題があります。ダイナミックプログラミングのアプローチが役立つかもしれないと思われますが、これまでのところ、私はダイナミックプログラミングという言葉でそれを解決することはできませんでした。誰もがこの問題を解決する上でリードを持っていますか?
function groupText(str, template)
Inputs:
str: a string of text
template: array of JavaScript objects.
One object per section that describes the min/max amount of text allowed
Output:
array: each element corresponds to one section.
The value of the element is the text that is in the section.
例として、「これはテストです」と等しい文字列strを定義しましょう。また、テンプレートtもあります。 は、いくつかのセクションで構成されています。各セクションのには、許容される最小および最大文字数があります。この例では、セクションが2つしかないとします。s1とs2です。 S1は、1つの文字の最小と100 S2の最大を持っている私たちは、機能groupTextに私たちの文字列strのと私たちのテンプレートトンを渡す10文字の最小値と15の最大値を有します。 groupTextは配列を返し、各要素はセクションに対応するiとなります。たとえば、要素0はs1に対応します。要素の値は、セクションに割り当てられたテキストになります。
この例では、解決策があります。
s1text = "この"
s2text = "テストです。"
あなたがしたいことの例は、あなたの質問をはるかによく理解するのに役立ちます。特に、入力と希望出力の例。 –
これは線形計画問題のように聞こえる。 – mindvirus
@HighPerformanceMark - 例を追加しました。それが役に立ったら教えてください。フィードバックをお寄せいただきありがとうございます。 – tabdulla