383. 赎金信


给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。如果可以,返回 true ;否则返回 false 。magazine 中的每个字符只能在 ransomNote 中使用一次。

   示例 1:

    输入:ransomNote = "a", magazine = "b"
    输出:false
  示例 2:

    输入:ransomNote = "aa", magazine = "ab"
    输出:false

============================================================

用string的find函数,时间复杂度为O(n),空间复杂度为O(1)

class Solution {
public:
    bool canConstruct(string ransomNote, string magazine) {
        for (int i = 0; i < ransomNote.size(); i++) {
            if (magazine.find(ransomNote[i]) > magazine.size())
                return false;
            magazine[magazine.find(ransomNote[i])] = ' ';
        }
        return true;
    }
};

相关