#Leetcode# 383. Ransom Note

https://leetcode.com/problems/ransom-note/

 

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

代码:

class Solution {
public:
    bool canConstruct(string ransomNote, string magazine) {
         int l1 = ransomNote.length(), l2 = magazine.length();
        map<char, int> mp;
        
        for(int i = 0; i < l2; i ++) mp[magazine[i]] ++;
        for(int i = 0; i < l1; i ++) {
            mp[ransomNote[i]] --;
            if(mp[ransomNote[i]] < 0) return false;
        }
        return true;
    }
};

  map 统计字符数

 

posted @ 2019-02-20 21:20  丧心病狂工科女  阅读(137)  评论(0编辑  收藏  举报