LeetCode随缘刷题之截断句子
这道题相对比较简单。正好最近学到StringBuilder就用了。
package leetcode.day_12_06;
/**
* 句子 是一个单词列表,列表中的单词之间用单个空格隔开,且不存在前导或尾随空格。每个单词仅由大小写英文字母组成(不含标点符号)。
* <p>
* 例如,"Hello World"、"HELLO" 和 "hello world hello world" 都是句子。
* 给你一个句子 s 和一个整数 k,请你将 s 截断 ,使截断后的句子仅含 前 k 个单词。返回 截断 s 后得到的句子。
* <p>
* 示例 1:
* <p>
* 输入: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:
* <p>
* 输入: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:
* <p>
* 输入:s = "chopper is not a tanuki", k = 5
* 输出:"chopper is not a tanuki"
*
* @author soberw
* @Classname TruncateSentence1816
* @Description
* @Date 2021-12-06 10:33
*/
public class TruncateSentence1816 {
/**
* @param s 一个单词列表
* @param k 想要截取的单词个数
* @description: 将 s 截断 ,使截断后的句子仅含 前 k 个单词。
* @return: 返回 截断 s 后得到的句子
* @author: soberw
* @time: 2021/12/6 10:34
*/
public String truncateSentence(String s, int k) {
String[] str = s.split(" ");
StringBuilder sbu = new StringBuilder();
for (int i = 0; i < k; i++) {
sbu.append(str[i]);
sbu.append(" ");
}
return sbu.toString().trim();
}
public static void main(String[] args) {
String s= "What is the solution to this problem";
System.out.println(new TruncateSentence1816().truncateSentence(s,4));
}
}
运行结果:


LeetCode随缘刷题之截断句子的更多相关文章
- LeetCode随缘刷题之最长回文子串
这一题我用的相对比较笨的方法. 相对于大佬们用的动态规划法,比较复杂.但却更容易理解,我主要是通过记录下标来确定最长回文串的. package leetcode.day_12_06; /** * 给你 ...
- Leetcode随缘刷题之寻找两个正序数组的中位数
我一上来没读清题,想着这题这么简单,直接就上手写了: package leetcode.day_12_05; import java.util.ArrayList; import java.util. ...
- LeetCode随缘刷题之Java经典面试题将一个字符串数组进行分组输出,每组中的字符串都由相同的字符组成
今天给大家分享一个Java经典的面试题,题目是这样的: 本题是LeetCode题库中的49题. 将一个字符串数组进行分组输出,每组中的字符串都由相同的字符组成 举个例子:输入["eat&qu ...
- LeetCode随缘刷题之字符串转换整数
package leetcode.day_01_29; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 请你 ...
- LeetCode随缘刷题之转化成小写字母
这道题应该是最简单的一道题了把,简直在侮辱我. package leetcode.day_12_12; /** * 709. 转换成小写字母 * 给你一个字符串 s ,将该字符串中的大写字母转换成相同 ...
- LeetCode随缘刷题之最短补全词
package leetcode.day_12_10; import org.junit.Test; /** * 给你一个字符串 licensePlate 和一个字符串数组 words ,请你找出并返 ...
- LeetCode随缘刷题之无重复字符的最长子串
欢迎评论区交流. package leetcode.day_12_04; /** * 给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度. * <p> * 示例1: * &l ...
- LeetCode随缘刷题之赎金信
欢迎评论区讨论. package leetcode.day_12_04; /** * 为了不在赎金信中暴露字迹,从杂志上搜索各个需要的字母,组成单词来表达意思. * * 给你一个赎金信 (ransom ...
- LeetCode随缘刷题之两数相加
逐步解释,有说错的地方欢迎指正. package leetcode.day_12_03; /** * 给你两个非空 的链表,表示两个非负的整数.它们每位数字都是按照逆序的方式存储的,并且每个节点只能存 ...
随机推荐
- Pytest_常用执行参数详解(3)
前面讲了测试用例的执行方式,也认识了 -v -s 这些参数,那么还有没有其它参数呢?答案肯定是有的,我们可以通过 pytest -h来查看所有可用参数. 从图中可以看出,pytest的参数有很多,但 ...
- web.xml文件配置模板
直接贴完整代码,当然,spring的核心控制器依赖包需要通过mean提前配置 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.// ...
- asyncio异步编程
1. 协程 协程不是计算机提供,程序员认为创造 协程(Coroutine),也可以被称为微线程,是一种用户态内的上下文切换技术,其实就是一个线程实现代码块相互切换执行.例如: def func1(): ...
- Go 中实现用户的每日限额(比如一天只能领三次福利)
如果你写一个 bug 管理系统,用了这个 PeriodLimit 你就可以限制每个测试人员每天只能给你提一个 bug.工作是不是就轻松很多了? 如今微服务架构大行其道本质原因是因为要降低系统的整体复杂 ...
- synchronized学习笔记
概述 我们都知道加锁的目的就是:序列化访问临界资源,即同一时刻只能有一个线程访问临界资源(同步互斥访问).在java对象中,每一个对象有且只有一个同步锁.这也意味着,同步锁依赖于对象而存在,当我们访问 ...
- Keil MDK STM32系列(四) 基于抽象外设库HAL的STM32F401开发
Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...
- git 重置密码后,本地电脑需要修改git密码
查看用户名git config user.name 查看密码git config user.password 查看邮箱git config user.email 修改密码git config --gl ...
- C#获取http图片
public Image GetHttpImage(string url) { var client = new HttpClient(); var uri = new Uri(Uri.EscapeU ...
- CentOS 7安装Odoo 15社区版的详细操作指南
我之前的文章介绍过在Windows环境下安装Odoo 15,如果您需要在Windows部署,具体可参考我文末的微信号<10分钟教你本机电脑安装Odoo 15,并启用一个内置的项目APP应用> ...
- 华为matebook x pro蓝屏和拆机更换固态硬盘
华为老版本的笔记本电脑现在总是蓝屏. 情况 原因 我个人认为是建兴的固态硬盘的缘故. 我的笔记本几乎没用过,因为考研.如果玩游戏使用的老ThinkPad S5.matebook我这个丐版因为没有独立显 ...