# leetcode-806-Number of Lines To Write String

### 题目描述：

We are to write the letters of a given string `S`, from left to right into lines. Each line has maximum width 100 units, and if writing a letter would cause the width of the line to exceed 100 units, it is written on the next line. We are given an array `widths`, an array where widths[0] is the width of 'a', widths[1] is the width of 'b', ..., and widths[25] is the width of 'z'.

Now answer two questions: how many lines have at least one character from `S`, and what is the width used by the last such line? Return your answer as an integer list of length 2.

```Example :
Input:
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 = "abcdefghijklmnopqrstuvwxyz"
Output: [3, 60]
Explanation:
All letters have the same length of 10. To write all 26 letters,
we need two full lines and one line with 60 units.```
```Example :
Input:
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 = "bbbcccdddaaa"
Output: [2, 4]
Explanation:
All letters except 'a' have the same length of 10, and
"bbbcccdddaa" will cover 9 * 10 + 2 * 4 = 98 units.
For the last 'a', it is written on the second line because
there is only 2 units left in the first line.
So the answer is 2 lines, plus 4 units in the second line.```

Note:

• The length of `S` will be in the range [1, 1000].
• `S` will only contain lowercase letters.
• `widths` is an array of length `26`.
• `widths[i]` will be in the range of `[2, 10]`.

### 要完成的函数：

vector<int> numberOfLines(vector<int>& widths, string S)

### 说明：

1、这道题给定一个由字母组成的字符串和一个vector，vector长度为26，写着26个英文字母的宽度。要求把string中的字母写出来，按照vector中的长度写出来。

2、题意清晰，这道题也就变得异常容易了。

```    vector<int> numberOfLines(vector<int>& widths, string S)
{
int s1=S.size(),sum=0,row=0;//sum记录每一行的宽度，row记录行数
for(int i=0;i<s1;i++)
{
sum+=widths[S[i]-'a'];
if(sum>100)
{
sum=widths[S[i]-'a'];//初始化下一行的宽度
row++;
}
}
return {row+1,sum};
}```

0 条评论

• ### Leetcode-Easy 806. Number of Lines To Write String

给一个字符串S，从左到右将它们排列行，每行最大长度为100,，同时给定一个数组withds,widths[0]对应着 a的宽度, widths[1]对应着b的宽...

• ### 互联网法律动态报告（10月版）

互联网法律动态报告（10月版） 腾讯互联网与社会研究院 法律研究中心 重点摘要： ●2014年10月，网络治理、知识产权、竞争规则、电子商务、互联...

• ### LeetCode 806. 写字符串需要的行数

我们要把给定的字符串 S 从左到右写到每一行上，每一行的最大宽度为100个单位，如果我们在写某个字母的时候会使这行超过了100 个单位，那么我们应该把这个字母写...

• ### Python内置函数sorted()从入门到精通

Python内置函数sorted()可以对列表、元组、字典、集合、字符串、range对象以及其他可迭代对象进行排序，返回排序后的列表，支持使用key参数指定排序...