文章目录
- 1. 题目
- 2. 解题
1. 题目
键盘出现了一些故障,有些字母键无法正常工作。
而键盘上所有其他键都能够正常工作。
给你一个由若干单词组成的字符串 text ,单词间由单个空格组成(不含前导和尾随空格);
另有一个字符串 brokenLetters ,由所有已损坏的不同字母键组成,返回你可以使用此键盘完全输入的 text 中单词的数目。
示例 1:
输入:text = "hello world", brokenLetters = "ad"
输出:1
解释:无法输入 "world" ,因为字母键 'd' 已损坏。示例 2:
输入:text = "leet code", brokenLetters = "lt"
输出:1
解释:无法输入 "leet" ,因为字母键 'l' 和 't' 已损坏。示例 3:
输入:text = "leet code", brokenLetters = "e"
输出:0
解释:无法输入任何单词,因为字母键 'e' 已损坏。提示:
1 <= text.length <= 10^4
0 <= brokenLetters.length <= 26
text 由若干用单个空格分隔的单词组成,且不含任何前导和尾随空格
每个单词仅由小写英文字母组成
brokenLetters 由 互不相同 的小写英文字母组成
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-number-of-words-you-can-type
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
- 按题意模拟
class Solution {
public:int canBeTypedWords(string text, string brokenLetters) {vector<bool> exist(26, false);for(auto c : brokenLetters)exist[c-'a'] = true;int ans = 0;bool flag = true;text += " ";for(auto t : text){if(t == ' '){if(flag) ans++;else flag = true;}else{if(exist[t-'a'])flag = false;}}return ans;}
};
4 ms 6.5 MB C++
class Solution:def canBeTypedWords(self, text: str, brokenLetters: str) -> int:return len([t for t in text.split(' ') if not any (b in t for b in brokenLetters)])
28 ms 14.9 MB Python3
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!