广州哪些做网站的公司,一天赚30000的偏门,南昌做网站排名,Wordpress文章加入作者1816. 截断句子
句子 是一个单词列表#xff0c;列表中的单词之间用单个空格隔开#xff0c;且不存在前导或尾随空格。每个单词仅由大小写英文字母组成#xff08;不含标点符号#xff09;。
例如#xff0c;“Hello World”、“HELLO” 和 “hello world hello world”…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提示
1 s.length 500k 的取值范围是 [1, s 中单词的数目]s 仅由大小写英文字母和空格组成s 中的单词之间由单个空格隔开不存在前导或尾随空格
解题思路
s 中的单词之间由单个空格隔开因此我们需要遍历s中的每一个字符当遇到空格时直接跳过当遇到字母时将字母后面连续的没有被空格分隔开的字符全部遍历一遍直到遇到空格时结束遍历则说明我们已经找到了一个单词如此类推直到我们找到了题目要求的k个单词以后跳出循环并且记录下当前的下标该下标之前的字符串就是我们需要截断的字符串然后将该子串返回。
代码
class Solution {
public:string truncateSentence(string s, int k) {int i0;while (k0){if (isalpha(s[i])){while (isalpha(s[i]))i;k--;}else i;}return s.substr(0,i);}
};