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"

思路:

1、返回的字符串中空格数是 k - 1;

2、循环中就以递增量 i < k 作为条件,找到最后一个匹配的空格的下标

代码

  public string TruncateSentence(string s, int k)
        {
            int kSpace = 0;
            for (int i = 0; i < k; i++)
            {
                kSpace = s.IndexOf(' ', kSpace + 1);
            }
            return kSpace == -1 ? s : s.Substring(0, kSpace);
        }

 

posted @ 2021-12-06 13:21  冉水ay  阅读(35)  评论(0)    收藏  举报