Hash Tables: Ransom Note Hackerrank Solution - java
For Explanation Watch Video :
Code :
import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.*;
import java.util.regex.*;
import java.util.stream.*;
import static java.util.stream.Collectors.joining;
import static java.util.stream.Collectors.toList;
class Result {
/*
* Complete the 'checkMagazine' function below.
*
* The function accepts following parameters:
* 1. STRING_ARRAY magazine
* 2. STRING_ARRAY note
*/
public static void checkMagazine(List<String> magazine, List<String> note) {
//two times three is not four
//two times two is four
HashMap<String,Integer> hm = new HashMap<>();
for(int i=0;i<magazine.size();i++){
String s = magazine.get(i);
hm.put(s,hm.getOrDefault(s,0)+1);
}
for(int i=0;i<note.size();i++){
String s = note.get(i);
if(hm.containsKey(s) && hm.get(s)!=0){
hm.put(s,hm.get(s)-1);
}else{
System.out.println("No");
return;
}
}
System.out.println("Yes");
}
}
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String[] firstMultipleInput = bufferedReader.readLine().replaceAll("\\s+$", "").split(" ");
int m = Integer.parseInt(firstMultipleInput[0]);
int n = Integer.parseInt(firstMultipleInput[1]);
List<String> magazine = Stream.of(bufferedReader.readLine().replaceAll("\\s+$", "").split(" "))
.collect(toList());
List<String> note = Stream.of(bufferedReader.readLine().replaceAll("\\s+$", "").split(" "))
.collect(toList());
Result.checkMagazine(magazine, note);
bufferedReader.close();
}
}
Comments
Post a Comment