zoukankan      html  css  js  c++  java
  • 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].
    class Solution:
        def numberOfLines(self, widths, S):
            """
            :type widths: List[int]
            :type S: str
            :rtype: List[int]
            """
            line,pos = 1,0
            for i in S:
                wid = widths[ord(i)-ord('a')]
                pos += wid
                if pos>100:
                    pos = wid
                    line += 1
            return [line,pos]
    
  • 相关阅读:
    如何提高软件可维护性
    UML系列 (二)四种关系
    软件工程
    软件工程需求规格说明书
    机房收费系统可行性分析报告
    ThreadStaticAttribute 的使用
    WPF:Border 控件
    几篇介绍在页面中引用脚本文件的技术文档
    收集两篇介绍 Fildder 的文章
    收集三篇关于数据库主键设计的文章
  • 原文地址:https://www.cnblogs.com/bernieloveslife/p/9798287.html
Copyright © 2011-2022 走看看