3

1816. Truncate Sentence

 2 years ago
source link: https://books.halfrost.com/leetcode/ChapterFour/1800~1899/1816.Truncate-Sentence/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

1816. Truncate Sentence #

题目 #

A sentence is a list of words that are separated by a single space with no leading or trailing spaces. Each of the words consists of only uppercase and lowercase English letters (no punctuation).

  • For example, “Hello World”, “HELLO”, and “hello world hello world” are all sentences.

You are given a sentence s and an integer k. You want to truncate s such that it contains only the first k words. Return s after truncating it.

Example 1:

Input: s = "Hello how are you Contestant", k = 4
Output: "Hello how are you"
Explanation:
The words in s are ["Hello", "how" "are", "you", "Contestant"].
The first 4 words are ["Hello", "how", "are", "you"].
Hence, you should return "Hello how are you".

Example 2:

Input: s = "What is the solution to this problem", k = 4
Output: "What is the solution"
Explanation:
The words in s are ["What", "is" "the", "solution", "to", "this", "problem"].
The first 4 words are ["What", "is", "the", "solution"].
Hence, you should return "What is the solution".

Example 3:

Input: s = "chopper is not a tanuki", k = 5
Output: "chopper is not a tanuki"

Constraints:

  • 1 <= s.length <= 500
  • k is in the range [1, the number of words in s].
  • s consist of only lowercase and uppercase English letters and spaces.
  • The words in s are separated by a single space.
  • There are no leading or trailing spaces.

题目大意 #

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

  • 例如,“Hello World”、“HELLO” 和 “hello world hello world” 都是句子。

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

解题思路 #

  • 遍历字符串 s,找到最后一个空格的下标 end
  • 如果 end 为 0,直接返回 s,否则返回 s[:end]

代码 #

package leetcode

func truncateSentence(s string, k int) string {
	end := 0
	for i := range s {
		if k > 0 && s[i] == ' ' {
			k--
		}
		if k == 0 {
			end = i
			break
		}
	}
	if end == 0 {
		return s
	}
	return s[:end]
}

Related Issues not found

Please contact @halfrost to initialize the comment

本站总访问量: 5926400 次 您是本站第 3450454 位访问者

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK