1832. 判断句子是否为全字母句
1832. 判断句子是否为全字母句
题目
A pangram is a sentence where every letter of the English alphabet appears at least once.
Given a string sentence
containing only lowercase English letters, return true
if sentence
is a pangram , or false
otherwise.
Example 1:
Input: sentence = "thequickbrownfoxjumpsoverthelazydog"
Output: true
Explanation: sentence contains at least one of every letter of the English alphabet.
Example 2:
Input: sentence = "leetcode"
Output: false
Constraints:
1 <= sentence.length <= 1000
sentence
consists of lowercase English letters.
题目大意
全字母句 指包含英语字母表中每个字母至少一次的句子。
给你一个仅由小写英文字母组成的字符串 sentence
,请你判断 sentence
是否为 全字母句 。
如果是,返回 true
;否则,返回 false
。
示例 1:
输入: sentence = "thequickbrownfoxjumpsoverthelazydog"
输出: true
**解释:**sentence 包含英语字母表中每个字母至少一次。
示例 2:
输入: sentence = "leetcode"
输出: false
提示:
1 <= sentence.length <= 1000
sentence
由小写英语字母组成
解题思路
为了判断一个字符串是否包含了所有的字母,可以利用集合
Set
来完成。集合是一个无重复元素的集合,因此,当把句子中的每个字母添加到集合中时,集合的大小就会反映出不同字母的个数。如果集合的大小等于 26,说明句子包含了 26 个不同的字母;否则,说明没有包含所有字母。
复杂度分析
- 时间复杂度:
O(n)
,其中n
是句子的长度。需要遍历整个句子并将每个字符添加到集合中,这个操作是线性时间复杂度的。 - 空间复杂度:
O(1)
。尽管用Set
存储字符,但最多存储 26 个不同的字母,因此空间复杂度是常数级别的。
代码
/**
* @param {string} sentence
* @return {boolean}
*/
var checkIfPangram = function (sentence) {
// 创建一个集合,包含句子中的每个字符
let letters = new Set([...sentence]);
// 判断集合大小是否为 26,即是否包含所有字母
return letters.size == 26;
};