赎金信

给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。

如果可以,返回 true ;否则返回 false 。

magazine 中的每个字符只能在 ransomNote 中使用一次。

示例 1:

输入:ransomNote = "a", magazine = "b" 输出:false

示例 2:

输入:ransomNote = "aa", magazine = "ab" 输出:false

示例 3:

输入:ransomNote = "aa", magazine = "aab" 输出:true

提示:

  • 1 <= ransomNote.length, magazine.length <= 105
  • ransomNote 和 magazine 由小写英文字母组成

代码:

 

复制代码
1 class Solution { 2 public: 3 bool canConstruct(string ransomNote, string magazine) { 4 int r = ransomNote.size(); 5 int m = magazine.size(); 6 int hash1[26],hash2[26]; 7 for (int i = 0; i < 26; i++) 8 { 9 hash1[i] = 0; 10 hash2[i] = 0; 11 } 12 for(int i = 0;i<r;i++) 13 { 14 hash1[ransomNote[i]-'a']++; 15 } 16 for(int i = 0;i<m;i++) 17 { 18 hash2[magazine[i]-'a']++; 19 } 20 for(int i = 0;i<26;i++) 21 { 22 if(hash2[i]<hash1[i]) 23 return false; 24 } 25 return true; 26 } 27 };
复制代码

学了一下哈希,本来想挨个查找的,但是分情况分迷糊了,100+个测试案例只通过35个😭


__EOF__

本文作者顾夜
本文链接https://www.cnblogs.com/guxiaoye/p/16479748.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   顾夜  阅读(37)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示