开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第4天,点击查看活动详情
题目描述
全字母句 指包含英语字母表中每个字母至少一次的句子。
给你一个仅由小写英文字母组成的字符串 sentence ,请你判断 sentence 是否为 全字母句 。
如果是,返回 true ;否则,返回 false 。
来源:力扣(LeetCode)
- 示例 1
输入:sentence = "thequickbrownfoxjumpsoverthelazydog"
输出:true
解释:sentence 包含英语字母表中每个字母至少一次。
- 示例 2
输入: sentence = "leetcode"
输出: false
提示:
1 <= sentence.length <= 1000sentence由小写英语字母组成
思路分析
根据题意可知,题目给出一个仅由小写英文字母组成的字符串 sentence ,需要来判断 sentence 是否为 全字母句。什么是全字母句?全字母句指的是包含英语字母表中每个字母至少一次的句子,记住,是每一个字母都要出现。
字符串不好操作,使用字符串的split方法将sentence转换成数组arr;然后就可以将数组进行去重,去重后的数组就可以保证数组里面的每一项都是唯一的,计算总数的时候就不会出错;数组去重的方式有很多种,这里只列出一种;开始循环数组,取到数组的每一项,用数组的每一项来判断是否在新数组newArr里面,若是不存在,就将循环项push进去,若是新的数组里面已经存在这个字母了,那就无视它,再进行循环操作,直至循环结束;此时的新数组newArr里面的每一个字母绝对是唯一。根据常识我们可以知道,字母是有26个,所以我们只要判断数组的长度是否等于26个就可以;若是等于26那么就可以返回true,否则就返回false。
AC代码
function solution(strs) {
let a = strs.split('');
let arr = [];
for(let item of a) {
// if(!arr.includes(item))
if(!arr.some(a => a === item)) {
arr.push(item)
}
}
console.log(arr.length);
return arr.length === 26;
}
let sentence = "theqaaaaaaaaaaaaaaaaa";
solution(sentence)