Skip to content

Commit 9690690

Browse files
ransom note
1 parent ea285c5 commit 9690690

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

EASY/src/easy/RansomNote.java

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package easy;
2+
3+
import java.util.HashMap;
4+
import java.util.HashSet;
5+
import java.util.Map;
6+
import java.util.Set;
7+
/**
8+
* 383 Ransom Note:
9+
* Note:
10+
You may assume that both strings contain only lowercase letters.
11+
12+
canConstruct("a", "b") -> false
13+
canConstruct("aa", "ab") -> false
14+
canConstruct("aa", "aab") -> true
15+
*/
16+
public class RansomNote {
17+
public boolean canConstruct(String ransomNote, String magazine) {
18+
Map<Character, Integer> ransomMap = new HashMap();
19+
Set<Character> ransomSet = new HashSet();
20+
Map<Character, Integer> magazineMap = new HashMap();
21+
Set<Character> magazineSet = new HashSet();
22+
char[] ransom = ransomNote.toCharArray();
23+
char[] maga = magazine.toCharArray();
24+
for(int i = 0; i < ransom.length; i++){
25+
ransomSet.add(ransom[i]);
26+
ransomMap.put(ransom[i], ransomMap.getOrDefault(ransom[i], 0)+1);
27+
}
28+
for(int i = 0; i < maga.length; i++){
29+
magazineSet.add(maga[i]);
30+
magazineMap.put(maga[i], magazineMap.getOrDefault(maga[i], 0)+1);
31+
}
32+
33+
for(char c : ransomSet){
34+
if(!magazineSet.contains(c)) return false;
35+
}
36+
for(char c : ransomMap.keySet()){
37+
if(!magazineMap.containsKey(c)) return false;
38+
if(magazineMap.get(c) < ransomMap.get(c)) return false;
39+
}
40+
return true;
41+
}
42+
43+
public static void main(String...strings){
44+
RansomNote test = new RansomNote();
45+
String ransomNote = "aa";
46+
String magazine = "aab";
47+
System.out.println(test.canConstruct(ransomNote, magazine));
48+
}
49+
}

0 commit comments

Comments
 (0)