383. Ransom Note

来源:互联网 发布:大数据时代的喜与忧 编辑:程序博客网 时间:2024/06/17 13:56
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") -> falsecanConstruct("aa", "ab") -> falsecanConstruct("aa", "aab") -> true


简单来说就是判断右边的字符集合是否包含左边的字符集合。直接用数组计数来实现。


代码:

class Solution {public:    bool canConstruct(string ransomNote, string magazine) {    int count[300];    memset(count,0,sizeof(count));    for(auto& x:magazine)    {    count[x]++;    }    for(auto& x:ransomNote)    {    if(count[x]>0)    {    count[x]--;    }    else    {    return false;    }    }    return true;    }};


0 0