句子 是一个单词列表,列表中的单词之间用单个空格隔开,且不存在前导或尾随空格。每个单词仅由大小写英文字母组成(不含标点符号)。

  • 例如,"Hello World""HELLO" 和 "hello world hello world" 都是句子。

给你一个句子 s​​​​​​ 和一个整数 k​​​​​​ ,请你将 s​​ 截断 ​,​​​使截断后的句子仅含  k​​​​​​ 个单词。返回 截断 s​​​​​​ 后得到的句子

示例 1:

输入:s = "Hello how are you Contestant", k = 4
输出:"Hello how are you"
解释:
s 中的单词为 ["Hello", "how" "are", "you", "Contestant"]
前 4 个单词为 ["Hello", "how", "are", "you"]
因此,应当返回 "Hello how are you"

示例 2:

输入:s = "What is the solution to this problem", k = 4
输出:"What is the solution"
解释:
s 中的单词为 ["What", "is" "the", "solution", "to", "this", "problem"]
前 4 个单词为 ["What", "is", "the", "solution"]
因此,应当返回 "What is the solution"

示例 3:

输入:s = "chopper is not a tanuki", k = 5
输出:"chopper is not a tanuki"

示例代码1:

class Solution:def truncateSentence(self, s: str, k: int) -> str:lst = s.split()return ' '.join(lst[:k])

示例代码2【遍历】:

class Solution:def truncateSentence(self, s: str, k: int) -> str:n, end, count = len(s), 0, 0for i in range(1, n + 1):if i == n or s[i] == ' ':count += 1if count == k:end = ibreakreturn s[:end]

思路与算法:

由题意可知,除了最后一个单词,每个单词后面都跟随一个空格。因此可以通过统计空格与句子结尾的数目来统计单词数 count。当 count=k 时,将当前的下标记录到 end,返回句子 s 在 end 处截断的句子。

复杂度分析:

  • 时间复杂度:O(N),其中 NN 为句子 s 的长度。遍历整个字符串需要 O(N)。
  • 空间复杂度:O(1)。注意返回值不计入空间复杂度。

截断句子取前k个单词相关推荐

  1. php有几个单词,PHP-如何选择一个句子的前10个单词?

    PHP-如何选择一个句子的前10个单词? 我如何从输出中仅选择前10个字? AAA asked 2020-02-15T07:42:50Z 13个解决方案 126 votes implode(' ', ...

  2. leetcode 692. 前K个高频单词

    题目 给一非空的单词列表,返回前 k 个出现次数最多的单词. 返回的答案应该按单词出现频率由高到低排序.如果不同的单词有相同出现频率,按字母顺序排序. 示例 1: 输入: ["i" ...

  3. LeetCode简单题之截断句子

    题目 句子 是一个单词列表,列表中的单词之间用单个空格隔开,且不存在前导或尾随空格.每个单词仅由大小写英文字母组成(不含标点符号). 例如,"Hello World"." ...

  4. 1816. 截断句子

    1816. 截断句子 句子 是一个单词列表,列表中的单词之间用单个空格隔开,且不存在前导或尾随空格.每个单词仅由大小写英文字母组成(不含标点符号). 例如,"Hello World" ...

  5. LeetCode 1816. 截断句子

    文章目录 1. 题目 2. 解题 1. 题目 句子 是一个单词列表,列表中的单词之间用单个空格隔开,且不存在前导或尾随空格.每个单词仅由大小写英文字母组成(不含标点符号). 例如,"Hell ...

  6. 【快乐水题】1816. 截断句子

    原题: 力扣链接:1816. 截断句子 题目简述: 句子 是一个单词列表,列表中的单词之间用单个空格隔开,且不存在前导或尾随空格.每个单词仅由大小写英文字母组成(不含标点符号). 例如,"H ...

  7. 力扣 1816. 截断句子

    题目 句子 是一个单词列表,列表中的单词之间用单个空格隔开,且不存在前导或尾随空格.每个单词仅由大小写英文字母组成(不含标点符号). 例如,"Hello World"." ...

  8. 算法:前K个最大的元素

    前几天,阮一峰 和 winter 在前端九部组织了一个互面小组,目的是为了分享和解答面试遇到的面试题,感兴趣的可以了解一下. 下面我就把我回答的一个问题整理出来分享给大家. 问题描述 题目是:算法,前 ...

  9. 统计list里面相同元素个数_LeetCode 第 347 号问题:前 K 个高频元素

    本文首发于公众号「五分钟学算法」,是图解 LeetCode 系列文章之一. 个人网站:https://www.cxyxiaowu.com 今天分享的题目来源于 LeetCode 上第 347 号问题: ...

最新文章

  1. 解决 Unable to get provider
  2. yii引入php文件,Yii2框架中CSS、JS文件引入要领_PHP开发框架教程
  3. HTMLParser-实战
  4. WordPress环境配置与安装
  5. 帮管客CRM客户管理系统
  6. 站长工具箱浏览器插件-SEO分析效率工具插件
  7. C语言printf控制光标位置和清空屏幕
  8. 3dmax高版本转低版本插件_Fundebug前端JavaScript插件更新至1.8.0,兼容低版本的Android浏览器...
  9. [BUG]Git Sever搭建与相关错误处理
  10. Oracle使用技巧及PL/SQL Developer配置
  11. 七月算法机器学习3 矩阵分析与应用
  12. Hadoop配置文件详解
  13. 怎么把汉字转换成URL编码
  14. discuz怎么自定义php,Discuz添加自定义数据调用模块
  15. 百度地图截取指定区域坐标(可伸拉标记点)
  16. 情人节程序员用HTML网页表白【满天星星音乐背景动画特效】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript
  17. 立创eda入门-原理图,PCB制作
  18. EtherCAT从站调试测试
  19. 自学Python去接单,一周就能赚取近1200块,你看不起的行业,真的很赚钱!
  20. 瞬联基于OpenStack的私有云解决方案

热门文章

  1. “奥利”来啦,腾讯Robotics X实验室跑出的“轮滑小子”
  2. 仅用 4 小时,吃透“百度太行”背后硬科技!
  3. 肝了三天,万字长文教你玩转 tcpdump,从此抓包不用愁
  4. “数学不好,干啥都不行!”资深程序员:别再瞎努力了!
  5. Python脚本BUG引发学界震动,影响有多大?
  6. 微众银行AI团队开源联邦学习框架,并发布《联邦学习白皮书1.0》
  7. 全球超2万名开发者调研:Python 3渗透率至84%
  8. 华南理工大学院长涉嫌篡改8名研究生成绩,4人已停职
  9. 倒计时1天,2018中国大数据技术大会报名通道即将关闭(附参会提醒)
  10. ICCV2017 | 一文详解GAN之父Ian Goodfellow 演讲《生成对抗网络的原理与应用》(附完整PPT)