2025-09-15 Daily Challenge

Today I have done leetcode's September LeetCoding Challenge with cpp.

September LeetCoding Challenge 15

Description

Maximum Number of Words You Can Type

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.

Solution

map<string, int> split(string &s, char spliter = ' ') {
  map<string, int> result;
  for(int i = 0; i < s.length(); ++i) {
    string st;
    while(i < s.length() && s[i] != spliter) {
      st += s[i];
      i += 1;
    }
    if(st.size()) result[st] += 1;
  }
  return result;
}
class Solution {
public:
  int canBeTypedWords(string text, string brokenLetters) {
    auto words = split(text);
    set<char> broken(brokenLetters.begin(), brokenLetters.end());
    int answer = 0;
    for(auto &[word, count] : words) {
      bool ok = true;
      for(auto c : word) {
        if(broken.count(c)) {
          ok = false;
          break;
        }
      }
      if(ok) answer += count;
    }
    return answer;
  }
};

// Accepted
// 20/20 cases passed (3 ms)
// Your runtime beats 19.27 % of cpp submissions
// Your memory usage beats 16.28 % of cpp submissions (9.8 MB)