LeetCode 383. Ransom Note 题解(C++)
2016-10-11 12:18
393 查看
LeetCode 383. Ransom Note 题解(C++)
题目描述
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.示例
You may assume that both strings contain only lowercase letters.canConstruct(“a”, “b”) -> false
canConstruct(“aa”, “ab”) -> false
canConstruct(“aa”, “aab”) -> true.
思路
首先创建一个长度为26的整数数组用于存储26个字母出现的次数;之后对magazine数组进行遍历,记录每个字符出现的次数,若某字符出现,只需使该相应的数组位置的内容自加1;
再对ransomNote数组进行遍历,若某字符出现,使该对应的数组位置的内容自减1,若自减1后的结果小于0,则表示该字符在magazine中出现的次数比在ransomNote中出现的次数少,即返回false;
循环完毕返回true。
代码
class Solution { public: bool canConstruct(string ransomNote, string magazine) { int cNum[26] = {0}; for (int i = 0; i < magazine.length(); ++i) { cNum[magazine[i] - 'a']++; } for (int i = 0; i < ransomNote.length(); ++i) { cNum[ransomNote[i] - 'a']--; if (cNum[ransomNote[i] - 'a'] < 0) { return false; } } return true; } };
相关文章推荐
- leetcode题解-58. Length of Last Word && 67. Add Binary && 383. Ransom Note
- House Robber[leetcode]题解 c++
- LeetCode题解:Range Sum Query - Immutable(C++版本)
- LeetCode题解(C++版)
- 【LeetCode-383】Ransom Note(C++)
- 【leetcode】383. Ransom Note
- LeetCode题解汇总(C++ Java Python,含题目翻译)
- LeetCode 383. Ransom Note
- Leetcode 383. Ransom Note (Easy) (cpp)
- leetcode_c++: Ransom Note(383)
- leetcode 383. Ransom Note
- LeetCode题解:Range Sum Query - Immutable(C++版)
- LeetCode—383. Ransom Note
- <LeetCode OJ> 383. Ransom Note
- leetcode 383. Ransom Note
- leetcode Minimum Depth of Binary Tree C++题解
- [leetcode] 383. Ransom Note
- leetcode 383. Ransom Note
- [leetcode] 383. Ransom Note 解题报告
- LeetCode笔记:383. Ransom Note