{"id":457,"date":"2016-11-28T12:15:36","date_gmt":"2016-11-28T17:15:36","guid":{"rendered":"http:\/\/www.ferociouscoder.com\/blog\/?p=457"},"modified":"2016-11-28T12:15:36","modified_gmt":"2016-11-28T17:15:36","slug":"hackerrank-cracking-coding-interview-hash-tables-ransom-note","status":"publish","type":"post","link":"https:\/\/www.ferociouscoder.com\/blog\/archives\/hackerrank-cracking-coding-interview-hash-tables-ransom-note-457.html","title":{"rendered":"Hackerrank: Cracking the Coding Interview \u2013 Hash Tables: Ransom Note"},"content":{"rendered":"<p>This solution just involves keeping track of how many words are available and how many are used. If at any point we are using more than are available then we know the answer is &#8220;No&#8221;. If all goes will after trying to print out the ransom note then we can safely print &#8220;Yes&#8221;.<\/p>\n<p>Problem: <a href=\"https:\/\/www.hackerrank.com\/challenges\/ctci-ransom-note\" target=\"_blank\">https:\/\/www.hackerrank.com\/challenges\/ctci-ransom-note<\/a><\/p>\n<p>Solution:<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\nimport java.io.*;\r\nimport java.util.*;\r\nimport java.text.*;\r\nimport java.math.*;\r\nimport java.util.regex.*;\r\n\r\npublic class Solution {\r\n\r\n    public static void main(String&#x5B;] args) {\r\n        Scanner in = new Scanner(System.in);\r\n        int m = in.nextInt();\r\n        int n = in.nextInt();\r\n        String magazine&#x5B;] = new String&#x5B;m];\r\n        for(int magazine_i=0; magazine_i &lt; m; magazine_i++){\r\n            magazine&#x5B;magazine_i] = in.next();\r\n        }\r\n        HashMap&lt;String,Integer&gt; map = new HashMap&lt;&gt;();\r\n        for (int i=0; i&lt;magazine.length; i++) {\r\n            if (map.containsKey(magazine&#x5B;i])) {\r\n                map.put(magazine&#x5B;i], map.get(magazine&#x5B;i]) + 1);\r\n            } else {\r\n                map.put(magazine&#x5B;i], 1);\r\n            }\r\n        }\r\n        String ransom&#x5B;] = new String&#x5B;n];\r\n        boolean done = false;\r\n        String ans = &quot;Yes&quot;;\r\n        for(int ransom_i=0; !done &amp;&amp; ransom_i &lt; n; ransom_i++){\r\n            ransom&#x5B;ransom_i] = in.next();\r\n            if (map.containsKey(ransom&#x5B;ransom_i])) {\r\n                int x = map.get(ransom&#x5B;ransom_i]);\r\n                if (x &gt; 1) {\r\n                    map.put(ransom&#x5B;ransom_i], x - 1);\r\n                } else {\r\n                    map.remove(ransom&#x5B;ransom_i]);\r\n                }\r\n            } else {\r\n                done = true;\r\n                ans = &quot;No&quot;;\r\n            }\r\n        }\r\n        System.out.println(ans);\r\n    }\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>This solution just involves keeping track of how many words are available and how many are used. If at any point we are using more than are available then we know the answer is &#8220;No&#8221;. If all goes will after trying to print out the ransom note then we can safely print &#8220;Yes&#8221;. Problem: https:\/\/www.hackerrank.com\/challenges\/ctci-ransom-note &hellip; <a href=\"https:\/\/www.ferociouscoder.com\/blog\/archives\/hackerrank-cracking-coding-interview-hash-tables-ransom-note-457.html\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Hackerrank: Cracking the Coding Interview \u2013 Hash Tables: Ransom Note<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[28,29,19],"tags":[33,32,20],"class_list":["post-457","post","type-post","status-publish","format-standard","hentry","category-cracking-the-coding-interview","category-hackerrank","category-java","tag-ctci","tag-hackerrank","tag-java-2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Hackerrank: Cracking the Coding Interview \u2013 Hash Tables: Ransom Note - Ferocious Coder<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.ferociouscoder.com\/blog\/archives\/hackerrank-cracking-coding-interview-hash-tables-ransom-note-457.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Hackerrank: Cracking the Coding Interview \u2013 Hash Tables: Ransom Note - Ferocious Coder\" \/>\n<meta property=\"og:description\" content=\"This solution just involves keeping track of how many words are available and how many are used. If at any point we are using more than are available then we know the answer is &#8220;No&#8221;. If all goes will after trying to print out the ransom note then we can safely print &#8220;Yes&#8221;. Problem: https:\/\/www.hackerrank.com\/challenges\/ctci-ransom-note &hellip; Continue reading Hackerrank: Cracking the Coding Interview \u2013 Hash Tables: Ransom Note &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.ferociouscoder.com\/blog\/archives\/hackerrank-cracking-coding-interview-hash-tables-ransom-note-457.html\" \/>\n<meta property=\"og:site_name\" content=\"Ferocious Coder\" \/>\n<meta property=\"article:published_time\" content=\"2016-11-28T17:15:36+00:00\" \/>\n<meta name=\"author\" content=\"Rawrosaur\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rawrosaur\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.ferociouscoder.com\\\/blog\\\/archives\\\/hackerrank-cracking-coding-interview-hash-tables-ransom-note-457.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.ferociouscoder.com\\\/blog\\\/archives\\\/hackerrank-cracking-coding-interview-hash-tables-ransom-note-457.html\"},\"author\":{\"name\":\"Rawrosaur\",\"@id\":\"https:\\\/\\\/www.ferociouscoder.com\\\/blog\\\/#\\\/schema\\\/person\\\/1fb5cbee546cffd619a7b301e3dc447a\"},\"headline\":\"Hackerrank: Cracking the Coding Interview \u2013 Hash Tables: Ransom Note\",\"datePublished\":\"2016-11-28T17:15:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.ferociouscoder.com\\\/blog\\\/archives\\\/hackerrank-cracking-coding-interview-hash-tables-ransom-note-457.html\"},\"wordCount\":240,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.ferociouscoder.com\\\/blog\\\/#\\\/schema\\\/person\\\/1fb5cbee546cffd619a7b301e3dc447a\"},\"keywords\":[\"ctci\",\"hackerrank\",\"java\"],\"articleSection\":[\"Cracking the Coding Interview\",\"HackerRank\",\"Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.ferociouscoder.com\\\/blog\\\/archives\\\/hackerrank-cracking-coding-interview-hash-tables-ransom-note-457.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.ferociouscoder.com\\\/blog\\\/archives\\\/hackerrank-cracking-coding-interview-hash-tables-ransom-note-457.html\",\"url\":\"https:\\\/\\\/www.ferociouscoder.com\\\/blog\\\/archives\\\/hackerrank-cracking-coding-interview-hash-tables-ransom-note-457.html\",\"name\":\"Hackerrank: Cracking the Coding Interview \u2013 Hash Tables: Ransom Note - Ferocious Coder\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.ferociouscoder.com\\\/blog\\\/#website\"},\"datePublished\":\"2016-11-28T17:15:36+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.ferociouscoder.com\\\/blog\\\/archives\\\/hackerrank-cracking-coding-interview-hash-tables-ransom-note-457.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.ferociouscoder.com\\\/blog\\\/archives\\\/hackerrank-cracking-coding-interview-hash-tables-ransom-note-457.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.ferociouscoder.com\\\/blog\\\/archives\\\/hackerrank-cracking-coding-interview-hash-tables-ransom-note-457.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.ferociouscoder.com\\\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Hackerrank: Cracking the Coding Interview \u2013 Hash Tables: Ransom Note\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.ferociouscoder.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.ferociouscoder.com\\\/blog\\\/\",\"name\":\"Ferocious Coder\",\"description\":\"RAWR!\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.ferociouscoder.com\\\/blog\\\/#\\\/schema\\\/person\\\/1fb5cbee546cffd619a7b301e3dc447a\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.ferociouscoder.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.ferociouscoder.com\\\/blog\\\/#\\\/schema\\\/person\\\/1fb5cbee546cffd619a7b301e3dc447a\",\"name\":\"Rawrosaur\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1372156bd3b16de375c8727c2c617467bf6ff38f1679a7912f48286349c17e96?s=96&d=retro&r=pg\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1372156bd3b16de375c8727c2c617467bf6ff38f1679a7912f48286349c17e96?s=96&d=retro&r=pg\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1372156bd3b16de375c8727c2c617467bf6ff38f1679a7912f48286349c17e96?s=96&d=retro&r=pg\",\"caption\":\"Rawrosaur\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1372156bd3b16de375c8727c2c617467bf6ff38f1679a7912f48286349c17e96?s=96&d=retro&r=pg\"},\"sameAs\":[\"http:\\\/\\\/www.ferociouscoder.com\\\/\"],\"url\":\"https:\\\/\\\/www.ferociouscoder.com\\\/blog\\\/archives\\\/author\\\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Hackerrank: Cracking the Coding Interview \u2013 Hash Tables: Ransom Note - Ferocious Coder","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.ferociouscoder.com\/blog\/archives\/hackerrank-cracking-coding-interview-hash-tables-ransom-note-457.html","og_locale":"en_US","og_type":"article","og_title":"Hackerrank: Cracking the Coding Interview \u2013 Hash Tables: Ransom Note - Ferocious Coder","og_description":"This solution just involves keeping track of how many words are available and how many are used. If at any point we are using more than are available then we know the answer is &#8220;No&#8221;. If all goes will after trying to print out the ransom note then we can safely print &#8220;Yes&#8221;. Problem: https:\/\/www.hackerrank.com\/challenges\/ctci-ransom-note &hellip; Continue reading Hackerrank: Cracking the Coding Interview \u2013 Hash Tables: Ransom Note &rarr;","og_url":"https:\/\/www.ferociouscoder.com\/blog\/archives\/hackerrank-cracking-coding-interview-hash-tables-ransom-note-457.html","og_site_name":"Ferocious Coder","article_published_time":"2016-11-28T17:15:36+00:00","author":"Rawrosaur","twitter_misc":{"Written by":"Rawrosaur","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.ferociouscoder.com\/blog\/archives\/hackerrank-cracking-coding-interview-hash-tables-ransom-note-457.html#article","isPartOf":{"@id":"https:\/\/www.ferociouscoder.com\/blog\/archives\/hackerrank-cracking-coding-interview-hash-tables-ransom-note-457.html"},"author":{"name":"Rawrosaur","@id":"https:\/\/www.ferociouscoder.com\/blog\/#\/schema\/person\/1fb5cbee546cffd619a7b301e3dc447a"},"headline":"Hackerrank: Cracking the Coding Interview \u2013 Hash Tables: Ransom Note","datePublished":"2016-11-28T17:15:36+00:00","mainEntityOfPage":{"@id":"https:\/\/www.ferociouscoder.com\/blog\/archives\/hackerrank-cracking-coding-interview-hash-tables-ransom-note-457.html"},"wordCount":240,"commentCount":0,"publisher":{"@id":"https:\/\/www.ferociouscoder.com\/blog\/#\/schema\/person\/1fb5cbee546cffd619a7b301e3dc447a"},"keywords":["ctci","hackerrank","java"],"articleSection":["Cracking the Coding Interview","HackerRank","Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.ferociouscoder.com\/blog\/archives\/hackerrank-cracking-coding-interview-hash-tables-ransom-note-457.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.ferociouscoder.com\/blog\/archives\/hackerrank-cracking-coding-interview-hash-tables-ransom-note-457.html","url":"https:\/\/www.ferociouscoder.com\/blog\/archives\/hackerrank-cracking-coding-interview-hash-tables-ransom-note-457.html","name":"Hackerrank: Cracking the Coding Interview \u2013 Hash Tables: Ransom Note - Ferocious Coder","isPartOf":{"@id":"https:\/\/www.ferociouscoder.com\/blog\/#website"},"datePublished":"2016-11-28T17:15:36+00:00","breadcrumb":{"@id":"https:\/\/www.ferociouscoder.com\/blog\/archives\/hackerrank-cracking-coding-interview-hash-tables-ransom-note-457.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.ferociouscoder.com\/blog\/archives\/hackerrank-cracking-coding-interview-hash-tables-ransom-note-457.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.ferociouscoder.com\/blog\/archives\/hackerrank-cracking-coding-interview-hash-tables-ransom-note-457.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.ferociouscoder.com\/blog"},{"@type":"ListItem","position":2,"name":"Hackerrank: Cracking the Coding Interview \u2013 Hash Tables: Ransom Note"}]},{"@type":"WebSite","@id":"https:\/\/www.ferociouscoder.com\/blog\/#website","url":"https:\/\/www.ferociouscoder.com\/blog\/","name":"Ferocious Coder","description":"RAWR!","publisher":{"@id":"https:\/\/www.ferociouscoder.com\/blog\/#\/schema\/person\/1fb5cbee546cffd619a7b301e3dc447a"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.ferociouscoder.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.ferociouscoder.com\/blog\/#\/schema\/person\/1fb5cbee546cffd619a7b301e3dc447a","name":"Rawrosaur","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/1372156bd3b16de375c8727c2c617467bf6ff38f1679a7912f48286349c17e96?s=96&d=retro&r=pg","url":"https:\/\/secure.gravatar.com\/avatar\/1372156bd3b16de375c8727c2c617467bf6ff38f1679a7912f48286349c17e96?s=96&d=retro&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1372156bd3b16de375c8727c2c617467bf6ff38f1679a7912f48286349c17e96?s=96&d=retro&r=pg","caption":"Rawrosaur"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/1372156bd3b16de375c8727c2c617467bf6ff38f1679a7912f48286349c17e96?s=96&d=retro&r=pg"},"sameAs":["http:\/\/www.ferociouscoder.com\/"],"url":"https:\/\/www.ferociouscoder.com\/blog\/archives\/author\/admin"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p1mYMV-7n","jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.ferociouscoder.com\/blog\/wp-json\/wp\/v2\/posts\/457","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ferociouscoder.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ferociouscoder.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ferociouscoder.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ferociouscoder.com\/blog\/wp-json\/wp\/v2\/comments?post=457"}],"version-history":[{"count":1,"href":"https:\/\/www.ferociouscoder.com\/blog\/wp-json\/wp\/v2\/posts\/457\/revisions"}],"predecessor-version":[{"id":458,"href":"https:\/\/www.ferociouscoder.com\/blog\/wp-json\/wp\/v2\/posts\/457\/revisions\/458"}],"wp:attachment":[{"href":"https:\/\/www.ferociouscoder.com\/blog\/wp-json\/wp\/v2\/media?parent=457"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ferociouscoder.com\/blog\/wp-json\/wp\/v2\/categories?post=457"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ferociouscoder.com\/blog\/wp-json\/wp\/v2\/tags?post=457"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}