擅长:python、mysql、java
<p>这会给你一个好的结果,一个“贪婪”的策略:</p>
<ul>
<li>算出你努力争取的平均数,<code>avg = total_words / num_readings</code>。你知道吗</li>
<li>开始遍历各个部分,累积到目前为止的字数。你知道吗</li>
<li>如果你击中了一个精确的匹配,然后标记该部分并继续。你知道吗</li>
<li>否则,如果你要检查字数,选择是否包括下一节根据什么是更接近平均值,例如,如果你是20短,如果你不包括它,但100多,如果你这样做,然后把它遗漏。你知道吗</li>
</ul>
<p>要做得更好,你需要一些启发。如果你把输入搞砸了,比如一个大的部分和许多小的部分,比如说</p>
<pre><code>100 100 100 100 100 100 40000 100 100 100 100
</code></pre>
<p>如果你想把它分成5个部分,你希望你的输出是什么样的?我的算法会告诉你:</p>
<pre><code>100 100 100 100 100 100
40000
100 100 100 100
0
0
</code></pre>
<p>您可以很容易地对其进行调整,以强制每个部分至少使用一个单词:</p>
<pre><code>100 100 100 100 100 100
40000
100 100
100
100
</code></pre>
<p>但这可能不像这个选项那么“好”:</p>
<pre><code>100 100 100
100 100 100
40000
100 100
100 100
</code></pre>
<p>是的,我建议你看看<a href="https://stackoverflow.com/a/19324872/15055">Bas</a>建议的讲座。你必须调整一下启发式。例如,对于你来说,在一节中有更多的单词是可以的,而对于行打包来说,如果你再看一遍的话,那就太糟糕了。你知道吗</p>