【2022-12-13每日一题】1832. 判断句子是否为全字母句[Easy]

2022-12-13
1分钟阅读时长

2022-12-13每日一题:1832. 判断句子是否为全字母句

难度:Easy

标签:哈希表 、 字符串

全字母句 指包含英语字母表中每个字母至少一次的句子。

给你一个仅由小写英文字母组成的字符串 sentence ,请你判断 sentence 是否为 全字母句

如果是,返回 true ;否则,返回 false

示例 1:

输入:sentence = "thequickbrownfoxjumpsoverthelazydog"
输出:true
解释:sentence 包含英语字母表中每个字母至少一次。

示例 2:

输入:sentence = "leetcode"
输出:false

提示:

  • 1 <= sentence.length <= 1000
  • sentence 由小写英语字母组成

方法一:哈希表

func checkIfPangram(sentence string) bool {
    if len(sentence) < 26 {
        return false
    }
    exist := [26]bool{}
    for _, c := range sentence {
        exist[c-'a'] = true
    }
    for _, v := range exist {
        if !v {
            return false
        }
    }
    return true
}

复杂度分析

  • 时间复杂度:O(n)。
  • 空间复杂度:O(C),C=26。

方法二:二进制

func checkIfPangram(sentence string) bool {
    mask := 0
    for _, c := range sentence {
        mask |= 1 << (c - 'a')
    }
    return mask == 1<<26-1
}

复杂度分析

  • 时间复杂度:O(n)。
  • 空间复杂度:O(1)。

LeetCode题库地址