LeetCode(力扣)1832. 判断句子是否为全字母句(C++)

题目描述:

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

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

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

      这道题让我们判断是否为全字母句,我们可以定义一个长度为26的nums数组,用来存放字符出现的次数,因为字符a到字符z的ASCII码值是26个连续的数值。如果该数组的某个值为0,则代表该字符未出现,即该句不是全字母句。

      首先我们遍历字符串sentence时,通过将sentence[ i ] - ' a '可得出sentence[ i ]字符的相对ASCII值映射到数组上,字符' a '出现次数映射到nums[ 0 ],字符' z '出现次数映射到nums[ 25 ],这样就可以得出结果。

代码实现:

class Solution {
public:
    bool checkIfPangram(string sentence) {
        int nums[26] = {0};
        for (int s: sentence) {//范围for循环遍历sentence数组
            nums[s - 'a']++;   //通过s - 'a'得出相对ASCII码值,映射出字符的索引
        }
        for (int s: nums) {
            if (s == 0) {       //若s = 0则该字符未出现,返回false
                return false;
            }
        }
        return true;            //若 所有s != 0 则说明字符都出现过 返回true即可
        
    }
};

 这个0ms应该有点问题,但提交了几次都是这样,emmmm。但哈希表确实快。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值