专栏首页程序生活Leetcode-Easy 806. Number of Lines To Write String

Leetcode-Easy 806. Number of Lines To Write String

题目描述

给一个字符串S,从左到右将它们排列行,每行最大长度为100,,同时给定一个数组withds,widths[0]对应着 a的宽度, widths[1]对应着b的宽度, ..., widths[25] 对应着z的宽度。 求:至少需要多少行以及最后一行的长度 下面是一个实例:

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.

260的宽度,需要排成2个100的行,第3行的长度为60,所以结果是[3,60]

思路

逐个排列S中的每个字母,每排一个字母,需要检查当前行长度是否大于100,大于100,行数加1,长度变成最后一个元素的宽度。

代码实现

class Solution:
    def numberOfLines(self, widths, S):
        """
        :type widths: List[int]
        :type S: str
        :rtype: List[int]
        """
        letter_list=list("abcdefghijklmnopqrstuvwxyz")
        
        length=0
        line=1
        
        for s in S:
            length+=widths[letter_list.index(s)]
            if length>100:
                line+=1
                length=widths[letter_list.index(s)]
                
        return [line,length]

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Leetcode-Easy 412. Fizz Buzz

    728. Self Dividing Numbers 描述: 给定一个整数n,判断1-n之间的数字,输出字符串。如果一个数是3的倍数,输出“FIzz”;如果...

    致Great
  • Python 中argparse模块的使用

    如果脚本很简单或临时使用,没有多个复杂的参数选项,可以直接利用sys.argv将脚本后的参数依次读取(读进来的默认是字符串格式)。

    致Great
  • Python使用numpy生成批量数据

    致Great
  • Python基础——切片实例

    py3study
  • 互联网法律动态报告(10月版)

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

    腾讯研究院
  • leetcode-806-Number of Lines To Write String

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

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

    Michael阿明
  • Python内置函数sorted()从入门到精通

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

    Python小屋屋主
  • 不同时间复杂度的规模上限

    饶文津
  • Python之指数与E记法

    py3study

扫码关注云+社区

领取腾讯云代金券