我们要把给定的字符串 S 从左到右写到每一行上,每一行的最大宽度为100个单位,如果我们在写某个字母的时候会使这行超过了100 个单位,那么我们应该把这个字母写到下一行。我们给定了一个数组 widths ,这个数组 widths[0] 代表 ‘a’ 需要的单位, widths[1] 代表 ‘b’ 需要的单位,…, widths[25] 代表 ‘z’ 需要的单位。

现在回答两个问题:至少多少行能放下S,以及最后一行使用的宽度是多少个单位?将你的答案作为长度为2的整数列表返回。

示例1:
输入:
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个字母,
我们需要2个整行和占用60个单位的一行。

示例2:
输入:
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”
输出: [2, 4]
解释:
除去字母’a’所有的字符都是相同的单位10,并且字符串 “bbbcccdddaa” 将会覆盖 9 * 10 + 2 * 4 = 98 个单位.
最后一个字母 ‘a’ 将会被写到第二行,因为第一行只剩下2个单位了。
所以,这个答案是2行,第二行有4个单位宽度。

注:

  • 字符串 S的长度在 [1, 1000]的范围。
  • S 只包含小写字母。
  • widths 是长度为 26的数组。
  • widths[i] 值的范围在 [2, 10]
/*** @param {number[]} widths* @param {string} S* @return {number[]}*/
var numberOfLines = function(widths, S) {};

个人解法

var numberOfLines = function(widths, S) {var result = [],row = 1,danwei = 0;S = S.split("");while(S.length !== 0){if(danwei + widths[S[0].charCodeAt() - 97] > 100){row++;danwei = widths[S[0].charCodeAt() - 97];}else{danwei += widths[S[0].charCodeAt() - 97];}S.shift();}result.push(row);result.push(danwei);return result;
};

LeetCode(806)——写字符串需要的行数(JavaScript)相关推荐

  1. Python入门练习题026:字符串写入的行数

    """ 记录下自己自学python和练习写的代码,等以后进阶后,再回来看一下曾经自己写的代码有多蠢Python入门练习题026:字符串写入的行数 把字符串S字符写入行中, ...

  2. mysql+影响的行数+获取_CI中获取读操作的结果集行数+获取写操作的影响行数

    本质:读操作,用mysql_num_rows函数,写操作用mysql_affected_rows函数 mysql_num_rows() 返回结果集中行的数目.此命令仅对 SELECT 语句有效.要取得 ...

  3. shell 字符串出现的行数

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 1 查询 ...

  4. Linux 统计多个文件中 某字符串出现的行数

    cat log_0 log_1 log_2 log_3 log_4 log_5 log_6 log_7 log_8 log_9 | grep "object has no attribute ...

  5. C++统计博客园写过的代码行数

    一.获得数据 1.备份到XML 2.改为txt 2.进行统计 #include<iostream> #include<string> using namespace std; ...

  6. Leetcode06.将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。

    文章目录 一.题目 二.数学规律法解题思路 1.特殊情况 2.进行周期分析 3.同行相邻点的位置分析 4.注意事项 5.代码实现 三.模拟法 一.题目 将一个给定字符串 s 根据给定的行数 numRo ...

  7. shell截取文件行数_shell查找某字符串在某文件中出现行数的方法

    一.简介 有的时候,我们需要分析日志来排查错误,但是日志文件特别大,打开肯定是很慢的,也是没法接受的,我们需要的是快速定位错误出现的位置,并定向取出错误信息. 快速定位某个字符串在某文件中出现的行数, ...

  8. java 只显示文本文件_Java设计并实现一个应用程序,能够读取一个文本文件中的内容并显示,同时能够计算出文本中的行数。...

    展开全部 java编写显示文本的应用程序, 需要用到图形界面GUI编程技术. 步骤一: 需要搭建一个整体的外观32313133353236313431303231363533e4b893e5b19e3 ...

  9. 代码行数统计工具SourceCounter

    下载地址:http://code.google.com/p/boomworks/wiki/SourceCounterCN 很容易就能统计出你写的代码的行数,只需要导入目录即可. 转载于:https:/ ...

最新文章

  1. 使用二维高斯函数模糊图片
  2. 解决oracle ORA-01078,LRM-00109故障一例!
  3. 中业科技机器人价格_2019年年中盘点:智能扫地机器人十大畅销品牌排名
  4. webgl 着色器_如何在WebAssembly中使用WebGL着色器
  5. qtdesigner 组件全吗_显示屏种类这么多,你知道怎么分类吗?
  6. 骨牌铺方格(HDU-2046)
  7. python 的csr_python - 以便携式数据形式保存/加载scipy稀疏csr_matrix
  8. poj 1032 Parliament 编程的小技巧
  9. 新浪微博的Tab滑动效果
  10. C# 从零开始编写一个修改“植物大战僵尸”阳光的内存辅助
  11. oracle同义词只有谁可以使用,oracle 同义词(synonym)
  12. 《孽海记·思凡》唱段·风吹荷叶煞
  13. Python设置32位环境
  14. smart bi 学习
  15. 在Oracle DevGym上学习cx_Oracle的笔记
  16. 思维导图学习3——思维导图示例
  17. docker部署微服务
  18. 苹果M1 Mac 如何卸载 iPhone 和 iPad 应用程序?
  19. 阿里云商标查询小程序有用过的没?感觉还可以呀
  20. java判断时间段是否交叉重叠

热门文章

  1. 004_wireshark专题
  2. 面向对象的tab选项卡实现
  3. 配置 Oracle 11gR2 在 CentOS6 上开机自启动
  4. windows下mysql备份脚本
  5. “错题集”帮你期末考试冲向满分
  6. Lucene分词初探---LetterTokenizer
  7. 夜深,你的手机为谁而开
  8. vue返回上级并且携带数据_前后端分离之后端返回用户角色信息(vueelementadmin+laravel)...
  9. php 双问号 语法,JS 新语法「可选链」「双问号」已进入 Stage 3
  10. python的数据模型_python高级(一)—— python数据模型(特殊方法)