开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第22天,点击查看活动详情
题目 leetcode.cn/
- 全字母句 指包含英语字母表中每个字母至少一次的句子。
- 给你一个仅由小写英文字母组成的字符串
sentence,请你判断sentence是否为 全字母句 。 - 如果是,返回 **
true;否则,返回 **false。
示例
-
示例 1:
- 输入: sentence = "thequickbrownfoxjumpsoverthelazydog"
- 输出: true
- 解释: sentence 包含英语字母表中每个字母至少一次。
-
示例 2:
- 输入: sentence = "leetcode"
- 输出: false
提示
1 <= sentence.length <= 1000sentence由小写英文字母组成
代码
function checkIfPangram(sentence: string): boolean {
if(sentence.length < 26) return false;
let str = sentence.split('');
let words = [...new Set(str)];
return words.length === 26 ? true : false
};
- 代码行数最少:
- 首先排除掉字符串长度小于
26的,直接返回false。小于26一定是有英文字母缺失的 - 然后将字符串转化为单个英文字符的字符串数组
- 使用
new Set()将字符串数组去重,得到去重后的数组 - 判断去重后的数组长度,如果长度等于
26,表示没有缺失的英文字母,返回true。否则有英文字母缺失,返回false
- 首先排除掉字符串长度小于
function checkIfPangram(sentence: string): boolean {
if(sentence.length < 26) return false;
let words = [];
for(let k = 0; k < sentence.length; k++){
if(!words.includes(sentence[k])){
words.push(sentence[k]);
}
}
return words.length === 26 ? true : false;
};
- 其他方式:
- 首先和上面一样,排除掉字符串长度小于
26的,直接返回false。 - 定义一个空数组,然后遍历整个字符串,依次取出字符串的每个英文字符,判断当前字符是否在数组中存在,如果不存在,将当前字符串添加到数组中。如果已经存在则不添加。
- 然后判断数组长度,如果长度等于
26,表示没有缺失的英文字母,返回true。否则有英文字母缺失,返回false - 说出来可能不信,这种方式消耗内存打败
100%,上面的只有5.5%
- 首先和上面一样,排除掉字符串长度小于