Python编程300例:快速构建可执行高质量代码
上QQ阅读APP看书,第一时间看更新

例26 字符串写入的行数

1.问题描述

把字符串S中的字符从左到右写入行中,每行最大宽度为100,如果往后新写一个字符导致该行宽度超过100,则写入下一行。

其中,一个字符的宽度由一个给定数组widths决定,widths[0]是字符a的宽度,widths[1]是字符b的宽度,…,widths[25]是字符z的宽度。

把字符串S全部写完,至少需要多少行?最后一行用去的宽度是多少?将结果作为整数列表返回。

2.问题示例

输入:

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"

输出:[3,60]

每个字符的宽度都是10,为了把这26个字符都写进去,需要两个整行和一个长度60的行。

3.代码实现

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,10]

输入的字符串:abcdefghijklmnopqrstuvwxyz

输出:[3,60]