首页 > 其他分享 >Leetcode-Easy 806. Number of Lines To Write String

Leetcode-Easy 806. Number of Lines To Write String

时间:2023-05-17 15:32:12浏览次数:29  
标签:10 String widths Lines Number list length 100 line


题目描述

给一个字符串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]

标签:10,String,widths,Lines,Number,list,length,100,line
From: https://blog.51cto.com/u_16116809/6291768

相关文章

  • 求教一个问题,关于elementplus的el-input-number组件问题
    问题描述:我想让组件默认展示placeholder的值,但是他默认显示的是0,网上搜到的方法都是说将默认值设成undefined,但是我试了并不好用问题代码如下: <el-input-numberv-model="state.form.throwTargetNum"class="range-input":......
  • rust 中 str 与 String; &str &String
    StringString类型的数据和基本类型不同,基本类型的长度是固定的,所以可以在栈上分配,而String类型是变长的,所以需要在堆上分配,所以String类型实际上是一个指向堆的指针。他的结构和Vec很类似。从他的声明看也是一个u8的VecpubstructString{vec:Vec<u8>,}看这样一个定......
  • [LeetCode] 1343. Number of Sub-arrays of Size K and Average Greater than or Equa
    Givenanarrayofintegers arr andtwointegers k and threshold,return *thenumberofsub-arraysofsize k andaveragegreaterthanorequalto *threshold.Example1:Input:arr=[2,2,2,2,5,5,5,8],k=3,threshold=4Output:3Explanation:Sub-a......
  • Date和String的转换
    1importjava.text.DateFormat;2importjava.text.SimpleDateFormat;3importjava.text.ParseException;4importjava.util.Calendar;5importjava.util.Date;678DateFormatformat=newSimpleDateFormat("yyyy-MM-dd&qu......
  • 由于string不能输入空格,和cin不能输入空格;用了map和vector和cin.get()的题;本题都正确
    1.cin是C++中最常用的输入语句,当遇到空格或者回车键即停止。无法解决。2.cin.get()函数可以接收空格,遇回车结束输入。3.string也不能输入空格给定两个字符串 A 和 B,本题要求你输出 A+B,即两个字符串的并集。要求先输出 A,再输出 B,但重复的字符必须被剔除。输入格式:输......
  • android.content.res.Resources$NotFoundException: String resource ID #0x4
    问题描述:android.content.res.Resources$NotFoundException:StringresourceID#0x4翻译为:android.content.res。资源$NotFoundException:字符串资源ID#0x4。原因:类型转换错误,请查看报错的地方和传过来(或是从接口获取的类型)的类型是否一致......
  • string方法
    str.charAt(下标)返回在指定位置的字符。varstr="HELLOWORLD";console.log(str.charAt(2));//Lstr.concat(str1,str2,str3...)连接两个或多个字符串varstr1="Hello";varstr2="world!";console.log(str1.concat(str2));//Helloworld!str.e......
  • SQL Server中 函数 ROW_NUMBER()OVER 的使用
    ROW_NUMBER()OVER,它为结果集的分区中的每一行分配一个连续的整数。行号以每个分区中第一行的行号开头。语法实例:SELECTROW_NUMBER()OVER(PARTITIONBYttTJ.ID_TeamsORDERBY(SELECTNULL))ASRowNumFROMscDayRpt_Teams_JobContentttTJ在上面语法中:PAR......
  • Java中String.spilt()方法的使用
    1、Java中可以使用String.spilt()方法按照指定的分隔符将字符串进行分割,然后返回字符串。2、测试demo:     ......
  • string传递内存参数
    使用string作为函数参数内存的输入使用string传递和获取内存不需要考虑内存释放在C++中,使用std::string类型进行字符串的传递和获取不需要显式考虑内存释放的原因是,std::string类实现了自动内存管理。std::string类封装了对字符串内存的分配和释放操作,它负责在构......