[LeetCode]383. Ransom Note
2016-09-14 10:42
435 查看
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.
Subscribe to see which companies asked this question
方法一:暴力法
bool canConstruct(string ransomNote, string magazine)
{ int lenR=ransomNote.length();
int lenM=magazine.length();
int flag=0;
if(lenR>lenM)
return false;
int *vis=new int [lenM];
memset(vis,1,lenM*sizeof(int));
for(int i=0;i<lenR;i++)
{
flag=0;
for(int j=0;j<lenM;j++)
{
if(ransomNote[i]==magazine[j]&&vis[j])
{
vis[j]=0;
flag=1;
break;
}
}
if(flag!=1)
return false;
}
return true;
}方法二:
bool canConstruct(string ransomNote, string magazine)
{
int a[26]={0};
int lenR=ransomNote.length();
int lenM=magazine.length();
for(int i=0;i<lenM;i++)
{
a[magazine[i]-'a']++;
}
for(int j=0;j<lenR;j++)
{
if(a[ransomNote[j]-'a']>0)
{
a[ransomNote[j]-'a']--;
}
else
return false;
}
return true;
}
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
Subscribe to see which companies asked this question
方法一:暴力法
bool canConstruct(string ransomNote, string magazine)
{ int lenR=ransomNote.length();
int lenM=magazine.length();
int flag=0;
if(lenR>lenM)
return false;
int *vis=new int [lenM];
memset(vis,1,lenM*sizeof(int));
for(int i=0;i<lenR;i++)
{
flag=0;
for(int j=0;j<lenM;j++)
{
if(ransomNote[i]==magazine[j]&&vis[j])
{
vis[j]=0;
flag=1;
break;
}
}
if(flag!=1)
return false;
}
return true;
}方法二:
bool canConstruct(string ransomNote, string magazine)
{
int a[26]={0};
int lenR=ransomNote.length();
int lenM=magazine.length();
for(int i=0;i<lenM;i++)
{
a[magazine[i]-'a']++;
}
for(int j=0;j<lenR;j++)
{
if(a[ransomNote[j]-'a']>0)
{
a[ransomNote[j]-'a']--;
}
else
return false;
}
return true;
}
相关文章推荐
- Leetcode——383. Ransom Note
- leetCode 383. Ransom Note 字符串
- LeetCode之383. Ransom Note
- LeetCode 383. Ransom Note
- LeetCode 383. Ransom Note 解题报告
- leetcode 383. Ransom Note 勒索信
- LeetCode 383. Ransom Note
- LeetCode-383. Ransom Note
- leetcode题解-58. Length of Last Word && 67. Add Binary && 383. Ransom Note
- Leetcode383. Ransom Note
- LeetCode - 383. Ransom Note
- 【Leetcode】383. Ransom Note
- leetcode 383. Ransom Note
- LeetCode 383. Ransom Note 题解(C++)
- LeetCode 383. Ransom Note(java)
- leetcode 383. Ransom Note
- LeetCode笔记:383. Ransom Note
- LeetCode-383. Ransom Note
- leetcode 383. Ransom Note
- LeetCode_383. Ransom Note