leetcode-1816:截断句子

简介: leetcode-1816:截断句子

题目

题目链接

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

  • 例如,“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"

解题

方法一:模拟

往res里面添加字符串,取出单词,并添加空格

class Solution {
public:
    string truncateSentence(string s, int k) {
        string res; 
        string tmp;
        for(char c:s){
            if(c==' '&&k==1){
                k--;
                res+=tmp;
                break;
            }
            else if(c==' '&&k--){
                res+=tmp+' ';
                tmp.clear();
            }
            else{
                tmp+=c;
            }
        }
        if(!tmp.empty()&&k) res+=tmp;
        return res;
    }
};

直接对字符串进行复制,类似于切片,只要统计k就行了。

class Solution {
public:
    string truncateSentence(string s, int k) {
        string res; 
        for(char c:s){
            if(k==0) break;
            if(c==' ') k--;
            if(k) res+=c;
        }
        return res;
    }
};
相关文章
|
17天前
|
Python
每日一题 2047. 句子中的有效单词数
每日一题 2047. 句子中的有效单词数
|
2月前
【力扣】1832.判断句子是否为全字母句
【力扣】1832.判断句子是否为全字母句
|
2月前
leetcode-2047:句子中的有效单词数
leetcode-2047:句子中的有效单词数
24 0
|
10月前
leetcode:58. 最后一个单词的长度
逆向求,先设置一个字符串下标index,定位到最后一个单词的最后一个字符。再一个设置长度变量n,从后向前遍历,直到遇到“空格”或者下标index小于0停止遍历,每次前移n++,最后返回长度变量n 关键1:如何定位到最后一个单词的最后一个字符?
29 0
|
算法 安全 Swift
LeetCode - #58 最后一个单词的长度
不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。
leetcode:58.最后一个单词的长度
给定一个仅包含大小写字母和空格 ’ ’ 的字符串,返回其最后一个单词的长度。
43 0
2114. 句子中的最多单词数
一个 句子 由一些 单词 以及它们之间的单个空格组成,句子的开头和结尾不会有多余空格。 给你一个字符串数组 sentences ,其中 sentences[i] 表示单个 句子 。 请你返回单个句子里 单词的最多数目 。
72 0
LeetCode 1832. 判断句子是否为全字母句
全字母句 指包含英语字母表中每个字母至少一次的句子。
86 0
|
算法
每日算法刷题Day8-统计最长连续字符、最长单词、倒排单词
⭐每日算法题解系列文章旨在精选重点与易错的算法题,总结常见的算法思路与可能出现的错误,与笔者另一系列文章有所区别,并不是以知识点的形式提升算法能力,而是以实战习题的形式理解算法,使用算法。
111 0
每日算法刷题Day8-统计最长连续字符、最长单词、倒排单词