Leetcode12/13每日一题“判断句子是否为全字母句”分析

今天打开力扣,看到每日一题是判断句子是否为全字母句。

一如既往,我们需要先读题来理解出题人的意图。

首先,题干第一句给出了对“全字母句”的定义--“全字母句指包含英语字母表中每个字母至少一次的句子。”后面给出了对我们的要求:

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

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

首先我们先分析上面这段话。“仅由小写英文字母构成”说明了我们要考虑的字母只有从a到z这26个小写英文字母,“判断其是否为全字母句”就需要我们对这个句子当中的每一个字母都要进行检验,只有a到z这26个字母都出现过一次才能叫做“全字母句”。这也就是后面返回True和False的原因。

前文提到,只有a到z这26个字母都出现过一次才能叫做“全字母句”。我们需要通过对每个字母都进行检查,通过循环a到z字母,然后通过对句子当中进行检查去检测26个字母是否全都存在,假若正在循环的字母存在,则进行下一次循环,如果不存在的话,则直接返回False,如果最后26个字母全都存在,就返回True。

这里笔者使用了Python3进行后面思路的讲解。

这里的思路采取了@AK自动机枚取字母的思路。非常感谢这位大佬。

class Solution:

        def checkIfPangram(self, sentence: str) -> bool:

                for i in range(26):

首先是进行循环,因为从a到z一共26个字母,因此这里的range次数写了26

                        a = chr(ord('a')+i)

这里的chr()函数是界定检查字母的范围,这里将范围定义成了‘a’字符的ASCII值97到‘z’字符对应的122。ord()函数是返回‘a’字符的ASCII值。

                                if a not in sentence:

这里是判断字母是否出现在句子当中,如果出现了就继续执行下一个循环,反之直接终止循环,返回False。

                                        return False

如果循环全部执行完毕且26个字母都出现的话,最后会返回True。

                return True 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值