[LeetCode] Ransom Note
2016-08-14 21:57
260 查看
A very typical application of hash maps. Since I am now learning Java, I code in Java. The following code uses toCharArray() and getOrDefault(), which are learnt from this post.
This code takes about 60ms.
In fact, arrays can be used to replace hash maps since the test cases of this problem only contan the 26 English letters. A array-version solution can be found here and is rewritten below.
This version is much faster, about 13ms.
public class Solution { public boolean canConstruct(String ransomNote, String magazine) { HashMap<Character, Integer> map = new HashMap<>(); for (Character k : magazine.toCharArray()) { int v = map.getOrDefault(k, 0) + 1; map.put(k, v); } for (Character k : ransomNote.toCharArray()) { int v = map.getOrDefault(k, 0) - 1; if (v < 0) return false; map.put(k, v); } return true; } }
This code takes about 60ms.
In fact, arrays can be used to replace hash maps since the test cases of this problem only contan the 26 English letters. A array-version solution can be found here and is rewritten below.
public class Solution { public boolean canConstruct(String ransomNote, String magazine) { int[] map = new int[26]; for (char k : magazine.toCharArray()) map[k - 'a']++; for (char k : ransomNote.toCharArray()) { int v = --map[k - 'a']; if (v < 0) return false; } return true; } }
This version is much faster, about 13ms.
相关文章推荐
- LeetCode之Ransom Note (Java+C)
- LeetCode Ransom Note(字符串)
- LeetCode:Ransom Note_383
- 【Leetcode】Ransom Note
- LeetCode--No.383--Ransom Note
- 【LeetCode】383 Ransom Note(java)
- Leetcode 383 Ransom Note
- Leetcode:383.Ransom Note(统计每个字符串每个字母的个数)
- leetcode: Ransom Note
- LeetCode[383] Ransom Note
- leetcode之Ransom Note
- LeetCode:383 Ransom Note
- 【python】【leetcode】【算法题目383—Ransom Note】
- leetcode383[easy]--- Ransom Note
- LeetCode Ransom Note
- [Leetcode]Ransom Note
- [LeetCode] Ransom Note (java)
- leetcode---Ransom Note
- 【LeetCode-383】Ransom Note(C++)
- [LeetCode] Ransom Note 赎金条