全字母句 指包含英语字母表中每个字母至少一次的句子。
给你一个仅由小写英文字母组成的字符串 sentence ,请你判断 sentence 是否为 全字母句 。
如果是,返回 true ;否则,返回 false 。
示例 1:输入:sentence = "thequickbrownfoxjumpsoverthelazydog" 输出:true
解释:sentence 包含英语字母表中每个字母至少一次。
示例 2:输入:sentence = "leetcode" 输出:false
提示:1 <= sentence.length <= 1000
sentence 由小写英语字母组成
解题思路分析1、遍历;时间复杂度O(n),空间复杂度O(1)
func checkIfPangram(sentence string) bool {
arr := [26]int{}
for i := 0; i < len(sentence); i {
arr[int(sentence[i]-'a')]
}
for i := 0; i < 26; i {
if arr[i] == 0 {
return false
}
}
return true
}
2、位运算;时间复杂度O(n),空间复杂度O(1)
func checkIfPangram(sentence string) bool {
res := 0
target := 1 << 26 -1
for i := 0; i < len(sentence); i {
res = res | 1 << (sentence[i]-'a')
}
return res == target
}
3、哈希;时间复杂度O(n),空间复杂度O(1)
func checkIfPangram(sentence string) bool {
m := make(map[byte]int)
for i := 0; i < len(sentence); i {
m[sentence[i]-'a']
}
return len(m) == 26
}
总结
Easy题目,可以直接数组,哈希或者位运算来进行计算
,