全字母句 指包含英语字母表中每个字母至少一次的句子。
给你一个仅由小写英文字母组成的字符串 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:
res |= (1 << (ord(c) - ord('a')))
if res == 0x3ffffff:
return True
return False
集合去重并计数:
class Solution {
public boolean checkIfPangram(String sentence) {
Set<Character> s = new HashSet<>();
for (char c : sentence.toCharArray()) {
s.add(c);
if (s.size() == 26) {
return true;
}
}
return false;
}
}
位运算:
class Solution {
public boolean checkIfPangram(String sentence) {
int res = 0;
for (char c : sentence.toCharArray()) {
res |= (1 << (c - 'a'));
if (res == 0x3ffffff) {
return true;
}
}
return false;
}
}
class Solution {
public:
bool checkIfPangram(string sentence) {
int res = 0;
for (char c : sentence)
{
res |= (1 << (c - 'a'));
if (res == 0x3ffffff) return true;
}
return false;
}
};
func checkIfPangram(sentence string) bool {
res := 0
for _, c := range sentence {
res |= (1 << (c - 'a'))
if res == 0x3ffffff {
return true
}
}
return false
}