赎金信力扣

在C++中,c - 'a'的作用是将小写字母转换为数组索引。具体解释如下:

  1. 字符的ASCII码:小写字母az的ASCII码依次为97到122。例如,'a'对应97,'b'对应98,依此类推。

  2. 索引转换:通过c - 'a',可以将字符c转换为025的整数。例如:

    • 'a' - 'a' = 0 → 对应数组索引0(统计字母a的次数)。

    • 'b' - 'a' = 1 → 对应数组索引1(统计字母b的次数)。

    • 以此类推,'z' - 'a' = 25

  3. 计数逻辑:代码使用长度为26的数组cnt(对应26个字母),通过遍历字符串:

    • 统计阶段:遍历magazine时,将每个字符对应的索引位置加1,记录字母出现次数。

    • 验证阶段:遍历ransomNote时,将对应索引位置减1。若某一位置的值变为负数,说明magazine中该字母不足,无法构造ransomNote

前提条件:输入字符串必须仅包含小写字母,否则c - 'a'可能导致越界访问(如大写字母或其他字符会得到负数或超过25的值)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值