思路:
首先,我们初始化了一个长度为 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,表示不是 pangram
return all(exist)