跳至主要內容

1832. 判断句子是否为全字母句


1832. 判断句子是否为全字母句

🟢   🔖  哈希表 字符串  🔗 力扣open in new window LeetCodeopen in new window

题目

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 由小写英语字母组成

解题思路

  1. 为了判断一个字符串是否包含了所有的字母,可以利用集合 Set 来完成。集合是一个无重复元素的集合,因此,当把句子中的每个字母添加到集合中时,集合的大小就会反映出不同字母的个数。

  2. 如果集合的大小等于 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;
};