Truncate Sentence
EasyUpdated: Aug 2, 2025
Practice on:
Problem
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 aftertruncating it.
Examples
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 <= 500kis in the range[1, the number of words in s].sconsist of only lowercase and uppercase English letters and spaces.- The words in
sare separated by a single space. - There are no leading or trailing spaces.
Solution
Method 1 – Split and Join
Intuition
Split the sentence into words, take the first k, and join them back.
Approach
- Split the string by spaces.
- Take the first k words.
- Join them with spaces.
Code
Java
class Solution {
public String truncateSentence(String s, int k) {
String[] words = s.split(" ");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < k; ++i) {
if (i > 0) sb.append(" ");
sb.append(words[i]);
}
return sb.toString();
}
}
Python
def truncateSentence(s, k):
return ' '.join(s.split()[:k])
Complexity
- ⏰ Time complexity:
O(n)— n = length of s. - 🧺 Space complexity:
O(n)— For the output string and split array.