{"id":980,"date":"2021-03-13T00:41:51","date_gmt":"2021-03-12T16:41:51","guid":{"rendered":"http:\/\/lonelinerd.com\/?p=980"},"modified":"2021-03-13T01:33:04","modified_gmt":"2021-03-12T17:33:04","slug":"leetcode-1461","status":"publish","type":"post","link":"https:\/\/lonelinerd.com\/index.php\/2021\/03\/13\/leetcode-1461\/","title":{"rendered":"[LeetCode\u5237\u984c\u7b46\u8a18] 1461 &#8211; Check If a String Contains All Binary Codes of  Size K"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"980\" class=\"elementor elementor-980\">\n\t\t\t\t\t\t<div class=\"elementor-inner\">\n\t\t\t\t<div class=\"elementor-section-wrap\">\n\t\t\t\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c5beee0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c5beee0\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-aa69d9d\" data-id=\"aa69d9d\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1f7d20e elementor-widget elementor-widget-text-editor\" data-id=\"1f7d20e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<h4><span style=\"text-decoration: underline;\"><strong>\u984c\u76ee\u63cf\u8ff0\uff1a<\/strong><\/span><\/h4><p class=\"md-end-block md-p\"><span class=\"md-plain\">Given a binary string <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>s<\/code><\/span><span class=\"md-plain\"> and an integer <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>k<\/code><\/span><span class=\"md-plain\">.<\/span><\/p><p class=\"md-end-block md-p\"><span class=\"md-plain\">Return <\/span><span class=\"md-pair-s \"><em><span class=\"md-plain\">True<\/span><\/em><\/span><span class=\"md-plain\"> if every binary code of length <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>k<\/code><\/span><span class=\"md-plain\"> is a substring of <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>s<\/code><\/span><span class=\"md-plain\">. Otherwise, return <\/span><span class=\"md-pair-s \"><em><span class=\"md-plain\">False<\/span><\/em><\/span><span class=\"md-plain\">.<\/span><\/p><p class=\"md-end-block md-p\">\u00a0<\/p><p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Example 1:<\/span><\/strong><\/span><\/p><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"\" spellcheck=\"false\"><span role=\"presentation\">Input: s = \"00110110\", k = 2<\/span><br \/><span role=\"presentation\">Output: true<\/span><br \/><span role=\"presentation\">Explanation: The binary codes of length 2 are \"00\", \"01\", \"10\" and \"11\". They can be all found as substrings at indicies 0, 1, 3 and 2 respectively.<\/span><\/pre><p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Example 2:<\/span><\/strong><\/span><\/p><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"\" spellcheck=\"false\"><span role=\"presentation\">Input: s = \"00110\", k = 2<\/span><br \/><span role=\"presentation\">Output: true<\/span><\/pre><p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Example 3:<\/span><\/strong><\/span><\/p><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"\" spellcheck=\"false\"><span role=\"presentation\">Input: s = \"0110\", k = 1<\/span><br \/><span role=\"presentation\">Output: true<\/span><br \/><span role=\"presentation\">Explanation: The binary codes of length 1 are \"0\" and \"1\", it is clear that both exist as a substring. <\/span><\/pre><p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Example 4:<\/span><\/strong><\/span><\/p><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"\" spellcheck=\"false\"><span role=\"presentation\">Input: s = \"0110\", k = 2<\/span><br \/><span role=\"presentation\">Output: false<\/span><br \/><span role=\"presentation\">Explanation: The binary code \"00\" is of length 2 and doesn't exist in the array.<\/span><\/pre><p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Example 5:<\/span><\/strong><\/span><\/p><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"\" spellcheck=\"false\"><span role=\"presentation\">Input: s = \"0000000001011100\", k = 4<\/span><br \/><span role=\"presentation\">Output: false<\/span><\/pre><p class=\"md-end-block md-p\">\u00a0<\/p><p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Constraints:<\/span><\/strong><\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>1 &lt;= s.length &lt;= 5 * 10^5<\/code><\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>s<\/code><\/span><span class=\"md-plain\"> consists of 0&#8217;s and 1&#8217;s only.<\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>1 &lt;= k &lt;= 20<\/code><\/span><\/p><\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f65ddba elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"f65ddba\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a424631\" data-id=\"a424631\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-982b119 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"982b119\" data-element_type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-18378c4 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"18378c4\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-57f9b9a\" data-id=\"57f9b9a\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3de1e4e elementor-widget elementor-widget-text-editor\" data-id=\"3de1e4e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<h4><span style=\"text-decoration: underline;\"><strong>\u4e00\u5237\u984c\u89e3\uff08HashSet\uff09\uff1a<\/strong><\/span><\/h4><p>\u00a0 \u00a0 \u00a0 \u00a0 \u9019\u984c\u7d66\u4e86\u6211\u5011\u4e00\u500b\u75310\u548c1\u7d44\u6210\u7684\u5b57\u7b26\u4e32s\uff0c\u53e6\u5916\u7d66\u4e86\u6211\u5011\u4e00\u500b\u4f4d\u6578k\u3002\u984c\u76ee\u8981\u6c42\u6211\u5011\u627e\u51fa\u4f4d\u6578\u70bak\u4e2d\u7684\u6240\u6709\u4e8c\u9032\u5236\u78bc\u662f\u5426\u88ab\u5168\u90e8\u5305\u542b\u5728\u4e86\u5b57\u7b26\u4e32s\u7684\u5b50\u5b57\u7b26\u4e32\u4e2d\uff08\u9577\u5ea6\u540c\u6a23\u70bak\uff09\u3002\u56e0\u6b64\uff0c<span style=\"color: #ff0000;\">\u9019\u500bk\u5206\u5225\u4ee3\u8868\u4e86\u6211\u5011\u6bcf\u6b21\u5728\u5b57\u7b26\u4e2d\u6240\u8981\u63d0\u53d6\u7684\u5b50\u5b57\u7b26\u4e32\u9577\u5ea6\u548c\u6211\u5011\u8981\u9032\u884c\u6bd4\u8f03\u7684\u4e8c\u9032\u5236\u78bc\u9577\u5ea6\u3002<\/span><\/p><p>\u00a0 \u00a0 \u00a0 \u00a0 \u9996\u5148\uff0c\u7531\u65bc\u6211\u5011\u6bcf\u6b21\u904d\u6b77\u5b57\u7b26\u4e32s\u90fd\u8981\u53d6\u51fa\u9577\u5ea6\u70bak\u7684\u5b50\u5b57\u7b26\u4e32\uff0c\u56e0\u6b64\uff0c\u6211\u5011<span style=\"color: #ff0000;\">\u904d\u6b77\u5b57\u7b26\u4e32s\u7684\u6b21\u6578\u4e0a\u9650\u662fs.Length &#8211; k<\/span>\uff0c\u78ba\u4fdd\u4e0d\u6703\u8d8a\u754c\u3002\u7136\u5f8c\u6211\u5011\u8072\u660e\u4e00\u500bHashSet&lt;string&gt;\uff0c\u4e26\u628a\u6211\u5011\u5728\u5b57\u7b26\u4e32s\u4e2d\u53d6\u51fa\u7684\u5143\u7d20\u9010\u4e00\u52a0\u9032HashSet\u4e2d\u3002\u800c<span style=\"color: #ff0000;\">\u7531\u65bcHashSet\u672c\u8eab\u7684\u7279\u6027\uff0c\u5df2\u5b58\u5728HashSet\u4e2d\u7684\u5143\u7d20\u4e0d\u6703\u88ab\u91cd\u8907\u6dfb\u52a0\uff0c\u65bc\u662f\u6700\u5f8c\u6211\u5011\u5f97\u5230\u4e00\u500b\u9577\u5ea6\u70ba\u5b57\u7b26\u4e32s\u4e2d\uff0c\u4f4d\u6578\u70bak\u7684\u4e8c\u9032\u5236\u78bc\u7a2e\u6578\u3002<\/span><\/p><p>\u00a0 \u00a0 \u00a0 \u00a0 \u7136\u5f8c\uff0c\u53ea\u8981\u6211\u5011<span style=\"color: #ff0000;\">\u518d\u5c07\u9019\u500b\u7a2e\u6578\uff08set.Count\uff09\u8ddf\u4f4d\u6578\u70bak\u4e0b\u7684\u6240\u6709\u4e8c\u9032\u5236\u78bc\u6578\u91cf\uff08Math.Pow(2, k)\uff09\u9032\u884c\u6bd4\u8f03\u3002\u5982\u679c\u5169\u8005\u76f8\u7b49\uff0c\u90a3\u5c31\u610f\u5473\u8457k\u4f4d\u7684\u6240\u6709\u4e8c\u9032\u5236\u78bc\u5168\u90e8\u88ab\u5305\u542b\u5728\u5b57\u7b26\u4e32s\u4e2d\u9577\u5ea6\u70bak\u7684\u5b50\u5b57\u7b26\u4e32\u4e4b\u4e2d\u3002<\/span><\/p>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-048786e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"048786e\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d9b077c\" data-id=\"d9b077c\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-611b8d7 elementor-widget elementor-widget-text-editor\" data-id=\"611b8d7\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"c#\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">class<\/span> <span class=\"cm-def\">Solution<\/span> {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">public<\/span> <span class=\"cm-variable-3\">bool<\/span> <span class=\"cm-variable\">HasAllCodes<\/span>(<span class=\"cm-variable-3\">string<\/span> <span class=\"cm-variable\">s<\/span>, <span class=\"cm-variable-3\">int<\/span> <span class=\"cm-variable\">k<\/span>) { \u00a0 \u00a0<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">HashSet<\/span><span class=\"cm-operator\">&lt;<\/span><span class=\"cm-variable-3\">string<\/span><span class=\"cm-operator\">&gt;<\/span> <span class=\"cm-keyword\">set<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-keyword\">new<\/span> <span class=\"cm-variable\">HashSet<\/span><span class=\"cm-operator\">&lt;<\/span><span class=\"cm-variable-3\">string<\/span><span class=\"cm-operator\">&gt;<\/span>();<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">for<\/span> (<span class=\"cm-variable-3\">int<\/span> <span class=\"cm-variable\">i<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-number\">0<\/span>; <span class=\"cm-variable\">i<\/span> <span class=\"cm-operator\">&lt;=<\/span> <span class=\"cm-variable\">s<\/span>.<span class=\"cm-variable\">Length<\/span> <span class=\"cm-operator\">-<\/span> <span class=\"cm-variable\">k<\/span>; <span class=\"cm-variable\">i<\/span><span class=\"cm-operator\">++<\/span>)<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable-3\">string<\/span> <span class=\"cm-variable\">str<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">s<\/span>.<span class=\"cm-variable\">Substring<\/span>(<span class=\"cm-variable\">i<\/span>, <span class=\"cm-variable\">k<\/span>);<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">set<\/span>.<span class=\"cm-variable\">Add<\/span>(<span class=\"cm-variable\">str<\/span>);<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  }<\/span><br \/><span role=\"presentation\">\u200b<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/every binary code of length k = Math.Pow(2, k);<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/set should be include all single binary code of 2*k<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/return Math.Pow(2, k) == set.Count;<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">return<\/span> (<span class=\"cm-number\">1<\/span> <span class=\"cm-operator\">&lt;&lt;<\/span> <span class=\"cm-variable\">k<\/span>) <span class=\"cm-operator\">==<\/span> <span class=\"cm-keyword\">set<\/span>.<span class=\"cm-variable\">Count<\/span>;<\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\">}<\/span><\/pre>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u984c\u76ee\u63cf\u8ff0\uff1a Given a binary string s and an integer k. Return  &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/lonelinerd.com\/index.php\/2021\/03\/13\/leetcode-1461\/\"> <span class=\"screen-reader-text\">[LeetCode\u5237\u984c\u7b46\u8a18] 1461 &#8211; Check If a String Contains All Binary Codes of  Size K<\/span> Read More &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":570,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,16],"tags":[],"class_list":["post-980","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming-notes","category-leetcodes"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/lonelinerd.com\/wp-content\/uploads\/2021\/02\/FeatureCover_LeetCoding.png","_links":{"self":[{"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/posts\/980","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/comments?post=980"}],"version-history":[{"count":14,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/posts\/980\/revisions"}],"predecessor-version":[{"id":995,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/posts\/980\/revisions\/995"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/media\/570"}],"wp:attachment":[{"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/media?parent=980"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/categories?post=980"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/tags?post=980"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}