题目描述
全字母句 指包含英语字母表中每个字母至少一次的句子。
给你一个仅由小写英文字母组成的字符串 sentence
,请你判断 sentence
是否为 全字母句 。
如果是,返回 true
;否则,返回 false
。
示例 1:
输入:sentence = “thequickbrownfoxjumpsoverthelazydog”
输出:true
解释:sentence 包含英语字母表中每个字母至少一次。
示例 2:
输入:sentence = “leetcode”
输出:false
提示:
1 <= sentence.length <= 1000
sentence 由小写英语字母组成
解题方法
- C
bool checkIfPangram(char* sentence) { int len = strlen(sentence); // 获取字符串长度 int index = 0; // 定义索引 char alphabet[26] = {0}; // 定义字母表 if(len < 26) // 少于 26 个字符一定不全 { return false; } for(int i = 0; i < len; i++) { if('a' <= sentence[i] <= 'z') // 判断小写字母 { index = sentence[i] - 'a'; // 拿到索引 alphabet[index]++; // 计数 } else { return false; } } for(int j = 0; j < 26; j++) { if(alphabet[j] == 0) // 查找未出现的字母 { return false; } } return true; }
复杂度分析
- 时间复杂度:O(n+C),其中 n 是 sentence 的长度,C 是字符集的大小(即小写字母的个数)。整个过程只需要遍历一次 sentence 和 exist。
- 空间复杂度:O( C ),其中 C 为字符集大小。