Skip to content

Commit

Permalink
New Problem Solution - "1935. Maximum Number of Words You Can Type"
Browse files Browse the repository at this point in the history
  • Loading branch information
haoel committed Nov 12, 2021
1 parent 51ea33c commit cf08222
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ LeetCode

| # | Title | Solution | Difficulty |
|---| ----- | -------- | ---------- |
|1935|[Maximum Number of Words You Can Type](https://leetcode.com/problems/maximum-number-of-words-you-can-type/) | [C++](./algorithms/cpp/maximumNumberOfWordsYouCanType/MaximumNumberOfWordsYouCanType.cpp)|Easy|
|1882|[Process Tasks Using Servers](https://leetcode.com/problems/process-tasks-using-servers/) | [C++](./algorithms/cpp/processTasksUsingServers/ProcessTasksUsingServers.cpp)|Medium|
|1881|[Maximum Value after Insertion](https://leetcode.com/problems/maximum-value-after-insertion/) | [C++](./algorithms/cpp/maximumValueAfterInsertion/MaximumValueAfterInsertion.cpp)|Medium|
|1880|[Check if Word Equals Summation of Two Words](https://leetcode.com/problems/check-if-word-equals-summation-of-two-words/) | [C++](./algorithms/cpp/checkIfWordEqualsSummationOfTwoWords/CheckIfWordEqualsSummationOfTwoWords.cpp)|Easy|
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
// Source : https://leetcode.com/problems/maximum-number-of-words-you-can-type/
// Author : Hao Chen
// Date : 2021-07-22

/*****************************************************************************************************
*
* 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 <= 10^4
* 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.
******************************************************************************************************/

class Solution {
public:
int canBeTypedWords(string text, string brokenLetters) {
vector<bool> borken(26, false);

for (auto ch : brokenLetters) {
borken[ch - 'a'] = true;
}

text += ' ';
int cnt = 0;
for (int i = 0; i < text.size(); i++ ) {
if ( text[i] == ' ') continue;

bool skip = false;
for (; text[i] != ' '; i++ ) {
if (borken[text[i] - 'a'] == true ) skip = true;
}
if ( !skip ) cnt++;
}

return cnt;
}
};

0 comments on commit cf08222

Please sign in to comment.