1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-01-10 18:48:13 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
leetcode-problemset/leetcode-cn/problem (Chinese)/写字符串需要的行数 [number-of-lines-to-write-string].html
2022-03-29 12:43:11 +08:00

38 lines
1.9 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<p>我们要把给定的字符串 <code>S</code>&nbsp;从左到右写到每一行上每一行的最大宽度为100个单位如果我们在写某个字母的时候会使这行超过了100 个单位,那么我们应该把这个字母写到下一行。我们给定了一个数组&nbsp;<code>widths</code>&nbsp;,这个数组&nbsp;widths[0] 代表 &#39;a&#39; 需要的单位,&nbsp;widths[1] 代表 &#39;b&#39; 需要的单位,...&nbsp;widths[25] 代表 &#39;z&#39; 需要的单位。</p>
<p>现在回答两个问题:至少多少行能放下<code>S</code>以及最后一行使用的宽度是多少个单位将你的答案作为长度为2的整数列表返回。</p>
<pre>
<strong>示例 1:</strong>
<strong>输入:</strong>
widths = [10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]
S = &quot;abcdefghijklmnopqrstuvwxyz&quot;
<strong>输出:</strong> [3, 60]
<strong>解释:
</strong>所有的字符拥有相同的占用单位10。所以书写所有的26个字母
我们需要2个整行和占用60个单位的一行。
</pre>
<pre>
<strong>示例 2:</strong>
<strong>输入:</strong>
widths = [4,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]
S = &quot;bbbcccdddaaa&quot;
<strong>输出:</strong> [2, 4]
<strong>解释:
</strong>除去字母&#39;a&#39;所有的字符都是相同的单位10并且字符串 &quot;bbbcccdddaa&quot; 将会覆盖 9 * 10 + 2 * 4 = 98 个单位.
最后一个字母 &#39;a&#39; 将会被写到第二行因为第一行只剩下2个单位了。
所以这个答案是2行第二行有4个单位宽度。
</pre>
<p>&nbsp;</p>
<p><strong>注:</strong></p>
<ul>
<li>字符串&nbsp;<code>S</code> 的长度在&nbsp;[1, 1000] 的范围。</li>
<li><code>S</code> 只包含小写字母。</li>
<li><code>widths</code> 是长度为&nbsp;<code>26</code>的数组。</li>
<li><code>widths[i]</code>&nbsp;值的范围在&nbsp;<code>[2, 10]</code></li>
</ul>