LeetCode(383)Ransom Note
阿新 • • 發佈:2019-01-10
題目
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
分析
判斷能否由字串magazine中的字元構造出ransom單詞。程式碼
#include <iostream> #include <cstdlib> #include <string> #include <vector> using namespace std; class Solution { public: bool canConstruct(string ransomNote, string magazine) { int rL = ransomNote.length(), mL = magazine.length(); vector<int> v(256, 0); for (int i = 0; i < mL; ++i) { ++v[magazine[i]]; }//for for (int i = 0; i < rL; ++i) { --v[ransomNote[i]]; if (v[ransomNote[i]] < 0) return false; }//for return true; } }; int main() { cout << Solution().canConstruct("a", "b") << endl; system("pause"); return 0; }