全字母句 指包含英语字母表中每个字母至少一次的句子。
给你一个仅由小写英文字母组成的字符串 sentence
,请你判断 sentence
是否为 全字母句 。
如果是,返回 true
;否则,返回 false
。
示例 1:
输入:sentence = "thequickbrownfoxjumpsoverthelazydog"
输出:true
解释:sentence
包含英语字母表中每个字母至少一次。
示例 2:
输入:sentence = "leetcode" 输出:false
提示:
1 <= sentence.length <= 1000
sentence
由小写英语字母组成
转为 Set,判断 Set 长度是否等于 26。若是,说明是全字母句。也可以使用位运算。
集合去重并计数:
class Solution:
def checkIfPangram(self, sentence: str) -> bool:
return len(set(sentence)) == 26
位运算:
class Solution:
def checkIfPangram(self, sentence: str) -> bool:
res = 0
for c in sentence:
diff = ord(c) - ord('a')
res |= (1 << diff)
if res == 0x3ffffff:
return True
return False
集合去重并计数:
class Solution {
public boolean checkIfPangram(String sentence) {
Set<Character> s = new HashSet<>();
for (int i = 0; i < sentence.length(); ++i) {
s.add(sentence.charAt(i));
if (s.size() == 26) return true;
}
return false;
}
}
位运算:
class Solution {
public boolean checkIfPangram(String sentence) {
int res = 0;
for (int i = 0; i < sentence.length(); ++i) {
int diff = sentence.charAt(i) - 'a';
res |= (1 << diff);
if (res == 0x3ffffff) return true;
}
return false;
}
}