思路:
- 首先,我们初始化了一个长度为 26 的布尔值列表
exist
,所有值都为 False
,表示所有字母初始都未出现过。 - 然后,我们遍历输入的字符串
sentence
中的每个字符。 - 对于每个字符,我们通过计算其 ASCII 码值减去字母 'a' 的 ASCII 码值来确定其在
exist
列表中的索引位置。比如字符 'a' 对应的索引为 0,字符 'b' 对应的索引为 1,以此类推。 - 我们将对应字母的位置在
exist
列表中设置为 True
,表示该字母已经出现过。 - 最后,我们使用 Python 中的
all
函数检查是否所有字母都已经出现过,如果是则返回 True
,表示输入的字符串是 pangram;否则返回 False
,表示不是 pangram。
题解:
class Solution:def checkIfPangram(self, sentence: str) -> bool:# 创建一个长度为 26 的布尔值列表,用于记录每个字母是否出现过exist = [False] * 26# 遍历输入的字符串中的每个字符for c in sentence:# 根据当前字符的 ASCII 值确定其在列表中的位置,将该位置的值设置为 True,表示该字母已经出现过exist[ord(c) - ord('a')] = True# 判断是否所有字母都已经出现过,如果是则返回 True,表示是 pangram;否则返回 False,表示不是 pangramreturn all(exist)