Teaching Kids Programming – Algorithm to Truncate Sentence via Split Function


Teaching Kids Programming: Videos on Data Structures and Algorithms

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.

Algorithm to Truncate Sentence via Split

For string.split function, if there are extra spaces, there might become a problem. For example:

1
2
a = "a  b  c"
a.split(' ') # ['a', '', 'b', '', 'c']
a = "a  b  c"
a.split(' ') # ['a', '', 'b', '', 'c']

If we don’t specify the delimiter, it will ignore extra spaces including the leading and trailing spaces (which you can trim via lstrip and rstrip. Or combined, strip() function).

1
2
a = " a  b  c "
a.split() # ['a', 'b', 'c']
a = " a  b  c "
a.split() # ['a', 'b', 'c']

With the split function, we then can convert the string of sentences by a list of word strings, and then we can use list index operator to truncate the first K words. We return the entire sentence if there are less than K words.

1
2
3
4
class Solution:
    def truncateSentence(self, s: str, k: int) -> str:
        a = s.split()
        return " ".join(a[:min(len(a), k)])
class Solution:
    def truncateSentence(self, s: str, k: int) -> str:
        a = s.split()
        return " ".join(a[:min(len(a), k)])

See also: Algorithm to Truncate Sentence

–EOF (The Ultimate Computing & Technology Blog) —

GD Star Rating
loading...
539 words
Last Post: Teaching Kids Programming - Counting Sort Algorithm in Python
Next Post: Teaching Kids Programming - Find Gene Mutation Groups via Recursive Depth First Search Algorithm

The Permanent URL is: Teaching Kids Programming – Algorithm to Truncate Sentence via Split Function

Leave a Reply