LeetCode:赎金信
题目描述:
给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。
如果可以,返回 true ;否则返回 false 。
magazine 中的每个字符只能在 ransomNote 中使用一次。
解题思路:
遍历其中一个字符串,并使用容器保存,记录每个字符出现的次数。再遍历另外一个字符串,在容器中寻找其是否存在,若存在对其值进行减一,其值为负返回false。
代码实现:
bool canConstruct(string ransomNote, string magazine) {if(ransomNote.size()>magazine.size()){return false;}map<char,int>Htable;for(auto &ite:magazine){++Htable[ite];}for(auto &ite:ransomNote){if(Htable.find(ite)!=Htable.end()){if(Htable[ite]){--Htable[ite];}else{return false;}}else{return false;}}return true;}

浙公网安备 33010602011771号