🚩 学如逆水行舟,不进则退。 —— 《增广贤文》
题目描述:
全字母句 指包含英语字母表中每个字母至少一次的句子。
给你一个仅由小写英文字母组成的字符串 sentence ,请你判断 sentence 是否为 全字母句 。
如果是,返回 true ;否则,返回 false 。
测试用例:
示例 1:
输入:sentence = “thequickbrownfoxjumpsoverthelazydog”
输出:true
解释:sentence 包含英语字母表中每个字母至少一次。
示例 2:
输入:sentence = “leetcode”
输出:false
分析:
这个题就太easy了,常规做法就是一次遍历,用hash或者array记录每个字符是否出现过,再一次遍历,若出现没出现过的就false,遍历结束true,但是其实看到这个有序的判断是否都出现其实可以秀一下位运算的|运算
代码:
//位运算
func checkIfPangram(sentence string) bool {
mask:=0
for _,v:=range sentence{
mask|=1<<(v-'a')
}
return mask == 1<<26-1
}
//常规
func checkIfPangram(sentence string) bool {
l := len(sentence)
if l<26{
return false
}else{
word:=[26]int{}
for _,v:=range sentence{
word[v-'a']+=1
}
for _,v:=range word{
if v==0{
return false
}
}
return true
}
}