carloscn / structstudy

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

leetcode1935: Maximum Number of Words You Can Type #309

Open carloscn opened 1 year ago

carloscn commented 1 year ago

Description

There is a malfunctioning keyboard where some letter keys do not work. All other keys on the keyboard work properly.

Given a string text of words separated by a single space (no leading or trailing spaces) and a string brokenLetters of all distinct letter keys that are broken, return the number of words in text you can fully type using this keyboard.

Example 1:

Input: text = "hello world", brokenLetters = "ad" Output: 1 Explanation: We cannot type "world" because the 'd' key is broken.

Example 2:

Input: text = "leet code", brokenLetters = "lt" Output: 1 Explanation: We cannot type "leet" because the 'l' and 't' keys are broken.

Example 3:

Input: text = "leet code", brokenLetters = "e" Output: 0 Explanation: We cannot type either word because the 'e' key is broken.

Constraints:

1 <= text.length <= 104 0 <= brokenLetters.length <= 26 text consists of words separated by a single space without any leading or trailing spaces. Each word only consists of lowercase English letters. brokenLetters consists of distinct lowercase English letters.

carloscn commented 1 year ago

Analysis

pub fn can_be_typed_words(text: &str, broken_letters: &str) -> i32
{
    if text.is_empty() || broken_letters.is_empty() {
        return 0;
    }

    let mut ret:i32 = 0;
    let bro_vec:Vec<char> = broken_letters.chars().collect();

    for e in text.split(" ") {
        let mut flag:i32 = 1;
        for c in &bro_vec {
            if e.contains(*c) {
                flag = 0;
                break;
            }
        }
        ret += flag;
    }

    return ret;
}
carloscn commented 1 year ago

Code

https://review.gerrithub.io/c/carloscn/structstudy/+/1167636 https://github.com/carloscn/structstudy/commit/31588bebbbff416d737325f1bfab0b0e38945cdd