[Leetcode] 383. Ransom Note 解题报告
2017-08-30 10:41
459 查看
题目:
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.
思路:
Easy级别的题目。一种做法是建立哈希表,但是由于题目限定了string中只包含小写字母,所以我们用一个定长数组来实现,效率更高。
代码:
class Solution {
public:
bool canConstruct(string ransomNote, string magazine) {
vector<int> counts(26, 0);
for(int i = 0; i < magazine.size(); ++i) {
int index = magazine[i] - 'a';
counts[index]++;
}
for(int i = 0; i < ransomNote.size(); ++i) {
int index = ransomNote[i] - 'a';
if(--counts[index] < 0) {
return false;
}
}
return true;
}
};
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
思路:
Easy级别的题目。一种做法是建立哈希表,但是由于题目限定了string中只包含小写字母,所以我们用一个定长数组来实现,效率更高。
代码:
class Solution {
public:
bool canConstruct(string ransomNote, string magazine) {
vector<int> counts(26, 0);
for(int i = 0; i < magazine.size(); ++i) {
int index = magazine[i] - 'a';
counts[index]++;
}
for(int i = 0; i < ransomNote.size(); ++i) {
int index = ransomNote[i] - 'a';
if(--counts[index] < 0) {
return false;
}
}
return true;
}
};
相关文章推荐
- leetcode 383. Ransom Note 解题报告
- LeetCode解题报告 383. Ransom Note [easy]
- Leetcode 383. Ransom Note 构造字符串 解题报告
- LeetCode 383. Ransom Note 解题报告
- [leetcode] 383. Ransom Note 解题报告
- 【LeetCode】383.Ransom Note(Easy)解题报告
- 【LeetCode】Ransom Note 解题报告
- LeetCode 6. ZigZag Conversion 解题报告
- [LeetCode]Implement Trie(Prefix Tree),解题报告
- leetcode解题报告(12):Maximum Subarray
- 【LeetCode】Repeated DNA Sequences 解题报告
- leetcode解题报告5. Longest Palindromic Substring
- LeetCode-Best Time to Buy and Sell Stock-解题报告
- 【LeetCode】 Best Time to Buy and Sell Stock I II III IV 解题报告
- [Leetcode] 363. Max Sum of Rectangle No Larger Than K 解题报告
- leetcode - 383. Ransom Note
- [Leetcode] 438. Find All Anagrams in a String 解题报告
- 【LeetCode】Binary Tree Maximum Path Sum 解题报告
- [Leetcode] 730. Count Different Palindromic Subsequences 解题报告
- [Leetcode] 732. My Calendar III 解题报告