LeetCode 383. Ransom Note
2016-08-12 15:52
393 查看
问题描述:
Given an arbitrary ransom note string and another string containing letters from all the magazines, write a function that will return true if the ransom note can be constructed from the magazines ; otherwise, it will return
false.
Each letter in the magazine string can only be used once in your ransom note.
Note:
You may assume that both strings contain only lowercase letters.
分析:大意就是给两个字符串,判断第一个字符串能否由第二个字串中字母组成,第二个字符串中的每个字符只能使用1次
个人用的hash表解决,0-256的值可以表示所有的字符了,所以哈希表大小定义为256.
字符为key,每个字符出现的次数为value
建立2个哈希表hash1、hash2,分别统计每个字符串出现的次数
最后比较hash1、hash2.
AC代码如下:
bool canConstruct(string ransomNote, string magazine)
{
if(ransomNote.length() > magazine.length())
return false;
int hash1[256] = {0};
int hash2[256] = {0};
for(int i = 0;i<ransomNote.size();i++)
hash1[ransomNote[i]]++;
for(int i = 0;i<magazine.size();i++)
hash2[magazine[i]]++;
for(int i =0;i<256;i++)
{
if(hash1[i] > hash2[i])
return false;
}
return true;
}
Given an arbitrary ransom note string and another string containing letters from all the magazines, write a function that will return true if the ransom note can be constructed from the magazines ; otherwise, it will return
false.
Each letter in the magazine string can only be used once in your ransom note.
Note:
You may assume that both strings contain only lowercase letters.
canConstruct("a", "b") -> false canConstruct("aa", "ab") -> false canConstruct("aa", "aab") -> true
分析:大意就是给两个字符串,判断第一个字符串能否由第二个字串中字母组成,第二个字符串中的每个字符只能使用1次
个人用的hash表解决,0-256的值可以表示所有的字符了,所以哈希表大小定义为256.
字符为key,每个字符出现的次数为value
建立2个哈希表hash1、hash2,分别统计每个字符串出现的次数
最后比较hash1、hash2.
AC代码如下:
bool canConstruct(string ransomNote, string magazine)
{
if(ransomNote.length() > magazine.length())
return false;
int hash1[256] = {0};
int hash2[256] = {0};
for(int i = 0;i<ransomNote.size();i++)
hash1[ransomNote[i]]++;
for(int i = 0;i<magazine.size();i++)
hash2[magazine[i]]++;
for(int i =0;i<256;i++)
{
if(hash1[i] > hash2[i])
return false;
}
return true;
}
相关文章推荐
- DOCKER容器的基本使用(一)
- Codeforces Round #367 (Div. 2) D Vasiliy's Multiset(字典树)
- Hadoop Archives
- 【JAVA语言程序设计基础篇】--图形-- 使用抽象方法绘制函数图形
- 数据结构实验之二叉树七:叶子问题
- EditText加下划线
- apt-get 以及Ubuntu下的附加驱动这类包都下载在哪里
- Oracle 11g 单实例安装文档
- POJ--2488 A Knight's Journeyb
- mongodb--find高级用法
- java的web项目中使用cookie保存用户登陆信息
- atoi() 与 itoa()函数的内部实现
- 打字练习之进阶
- IJCAI 10年(2007-2016)最佳论文合集
- ScrollView中的那些坑
- Apache2 httpd.conf 配置详解 (二)
- LeetCode | Merge Sorted Array
- Redis vs memcached vs mongo
- git 多账号配置
- Mybatis学习笔记---day04 mybatis与spring整合