Skip to content

Commit

Permalink
1816. Truncate Sentence: AC
Browse files Browse the repository at this point in the history
  • Loading branch information
tan-wei committed Dec 24, 2024
1 parent 82320d6 commit e90287a
Show file tree
Hide file tree
Showing 2 changed files with 94 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/solution/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1368,3 +1368,4 @@ mod s1812_determine_color_of_a_chessboard_square;
mod s1813_sentence_similarity_iii;
mod s1814_count_nice_pairs_in_an_array;
mod s1815_maximum_number_of_groups_getting_fresh_donuts;
mod s1816_truncate_sentence;
93 changes: 93 additions & 0 deletions src/solution/s1816_truncate_sentence.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
/**
* [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.
*
*/
pub struct Solution {}

// problem: https://leetcode.com/problems/truncate-sentence/
// discuss: https://leetcode.com/problems/truncate-sentence/discuss/?currentPage=1&orderBy=most_votes&query=

// submission codes start here

impl Solution {
pub fn truncate_sentence(s: String, k: i32) -> String {
s.split(" ")
.take(k as usize)
.collect::<Vec<&str>>()
.join(" ")
}
}

// submission codes end

#[cfg(test)]
mod tests {
use super::*;

#[test]
fn test_1816_example_1() {
let s = "Hello how are you Contestant".to_string();
let k = 4;

let result = "Hello how are you".to_string();

assert_eq!(Solution::truncate_sentence(s, k), result);
}

#[test]
fn test_1816_example_2() {
let s = "What is the solution to this problem".to_string();
let k = 4;

let result = "What is the solution".to_string();

assert_eq!(Solution::truncate_sentence(s, k), result);
}

#[test]
fn test_1816_example_3() {
let s = "chopper is not a tanuki".to_string();
let k = 5;

let result = "chopper is not a tanuki".to_string();

assert_eq!(Solution::truncate_sentence(s, k), result);
}
}

0 comments on commit e90287a

Please sign in to comment.