carloscn / structstudy

Leetcode daily trainning by using C/C++/RUST programming.
4 stars 1 forks source link

leetcode1816: Truncate Sentence #290

Open carloscn opened 1 year ago

carloscn commented 1 year ago

Description

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.

carloscn commented 1 year ago

Analysis

pub fn truncate_sentence(s: &str, k: i32) -> String
{
    if s.len() < 1 || k == 0 {
        return s.to_string();
    }

    let mut ret:String = String::new();
    let mut count:i32 = 0;
    for e in s.split(' ') {
        if count < k {
            ret += e;
            ret.push(' ');
        } else {
            break;
        }
        count += 1;
    }

    ret.remove(ret.len() - 1);
    return ret;
}
carloscn commented 1 year ago

code

https://github.com/carloscn/structstudy/commit/13fcfc314a32c8caa8095f7b6c131755715c54f2 https://review.gerrithub.io/c/carloscn/structstudy/+/557029