{"id":1192,"date":"2020-06-10T14:47:47","date_gmt":"2020-06-10T14:47:47","guid":{"rendered":"https:\/\/blog.prepbytes.com\/?p=1192"},"modified":"2020-06-10T14:48:27","modified_gmt":"2020-06-10T14:48:27","slug":"distint-concat","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/distint-concat\/","title":{"rendered":"Distint Concat"},"content":{"rendered":"<h4>Concepts Used<\/h4>\n<blockquote>\n<p>String<\/p>\n<\/blockquote>\n<h4>Difficulty Level<\/h4>\n<blockquote>\n<p>Hard<\/p>\n<\/blockquote>\n<h4>Problem Statement (Simplified):<\/h4>\n<blockquote>\n<p>Find the total number of substrings which are the concatenation of the same strings, e.g.PP if formed by concatenating P twice.<\/p>\n<\/blockquote>\n<p><a href=\"https:\/\/mycode.prepbytes.com\/problems\/strings\/DISECHO\" title=\"Go to mycode.prepbytes.com\" target=\"_blank\" rel=\"noopener noreferrer\"><u><strong><\/strong><\/u><\/a><\/p>\n<h4>Test Case<\/h4>\n<pre><code>Input:\n1\nxyzxyzxyz\n\nOutput:\n3\n\nExplanation:\nHere we can see 'xyz' repeats twice at index 0 and 3 satisfying our requirements.\n\n'yzx' repeats twice at index 1 and 4 satisfying our requirements.\n\n'zxy' repeats twice at index 2 and 5 satisfying our requirements.\n\nSo, there are a total of 3 strings which makes a substring of form PP where P is required substring. So, 3 is the answer.<\/code><\/pre>\n<h4>Solving Approach :<\/h4>\n<p>Bruteforce Approach:<\/p>\n<blockquote>\n<p>1) In the naive approach, we can find all possible substrings of the given string and also notice their starting point. Then we check if give substring appears twice serial wise from the given index or not. If yes, we count the substring, else we move to the next substring.<br \/>\n2) This approach takes <code>O(N^{2})<\/code> to find all substrings where <code>N<\/code> is the length of the given string. For each substring, it again takes <code>O(2\\times N)<\/code> for matching its appearance. So, it totally takes <code>O(N^{3})<\/code> time to process the whole string.<br \/>\n3) <code>O(N^{3})<\/code> is very inefficient for string of size larger than <code>250<\/code>. But our constraints give larger string than it, so we move to a more efficient approach.<\/p>\n<\/blockquote>\n<p>Efficient Approach:<\/p>\n<blockquote>\n<p>1) We can find the total number of such substrings if we can count substrings which start from every character of the string.<br \/>\n2) For every character, we check if substring from start to current character (Let&#8217;s say <code>K<\/code>) is the same as substring starting from current character to following characters of the same length as <code>K<\/code>.<br \/>\n3) If both strings are the same, we&#8217;have found one such required substring, thus we check if this substring has already been identified or not, if yes, we skip, else we count it as a unique substring.<br \/>\n4) We continuously check this for substrings starting from start to current character, and for all characters in the string.<\/p>\n<\/blockquote>\n<h2>Example and Video References<\/h2>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=j5ycUEAoqy8\">Disecho Solution (Youtube)<\/a><\/p>\n<h2>Solutions<\/h2>\n\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_1193 {\r\n\toverflow:hidden;\r\n\tdisplay:block;\r\n\twidth:100%;\r\n\tborder:0px solid #ddd;\r\n\tmargin-bottom:30px;\r\n\t}\r\n\r\n#tab_container_1193 .tab-content{\r\n\tpadding:20px;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n\tmargin-top: 0px;\r\n\tbackground-color:#ffffff !important;\r\n\tcolor: #000000 !important;\r\n\tfont-size:16px !important;\r\n\tfont-family: Open Sans !important;\r\n\t\r\n\t\tborder: 1px solid #e6e6e6 !important;\r\n\t}\r\n#tab_container_1193 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_1193 .wpsm_nav-tabs > li.active > a, #tab_container_1193 .wpsm_nav-tabs > li.active > a:hover, #tab_container_1193 .wpsm_nav-tabs > li.active > a:focus {\r\n\tcolor: #000000 !important;\r\n\tcursor: default;\r\n\tbackground-color: #ffffff !important;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n}\r\n\r\n#tab_container_1193 .wpsm_nav-tabs > li > a {\r\n    margin-right: 0px !important; \r\n    line-height: 1.42857143 !important;\r\n    border: 1px solid #d5d5d5 !important;\r\n    border-radius: 0px 0px 0 0 !important; \r\n\tbackground-color: #e8e8e8 !important;\r\n\tcolor: #000000 !important;\r\n\tpadding: 15px 18px 15px 18px !important;\r\n\ttext-decoration: none !important;\r\n\tfont-size: 14px !important;\r\n\ttext-align:center !important;\r\n\tfont-family: Open Sans !important;\r\n}\r\n#tab_container_1193 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_1193 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_1193 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_1193 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_1193 .wpsm_nav-tabs > li > a:hover , #tab_container_1193 .wpsm_nav-tabs > li > a:focus {\r\n    color: #000000 !important;\r\n    background-color: #e8e8e8 !important;\r\n\tborder: 1px solid #d5d5d5 !important;\r\n\t\r\n}\r\n#tab_container_1193 .wpsm_nav-tabs > li > a .fa{\r\n\r\nmargin-right:5px !important;\r\n\r\nmargin-left:5px !important;\r\n\r\n\r\n}\r\n\r\n\t\t#tab_container_1193 .wpsm_nav-tabs a{\r\n\t\t\tbackground-image: none;\r\n\t\t\tbackground-position: 0 0;\r\n\t\t\tbackground-repeat: repeat-x;\r\n\t\t}\r\n\t\t\t\r\n\r\n\r\n#tab_container_1193 .wpsm_nav-tabs > li {\r\n    float: left;\r\n    margin-bottom: -1px !important;\r\n\tmargin-right:0px !important; \r\n}\r\n\r\n\r\n#tab_container_1193 .tab-content{\r\noverflow:hidden !important;\r\n}\r\n\r\n\r\n@media (min-width: 769px) {\r\n\r\n\t#tab_container_1193 .wpsm_nav-tabs > li{\r\n\t\tfloat:left !important ;\r\n\t\t\t\tmargin-right:-1px !important;\r\n\t\t\t\t\t}\r\n\t#tab_container_1193 .wpsm_nav-tabs{\r\n\t\tfloat:none !important;\r\n\t\tmargin:0px !important;\r\n\t}\r\n\r\n\t#tab_container_1193 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_1193 .wpsm_nav{\r\n\t\t\t}\r\n\r\n}\r\n\r\n\r\n\r\n@media (max-width: 768px) {\r\n\t#tab_container_1193 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_1193 .wpsm_nav{\r\n\t\t\t}\r\n}\r\n\r\n\r\n\t.wpsm_nav-tabs li:before{\r\n\t\tdisplay:none !important;\r\n\t}\r\n\r\n\t@media (max-width: 768px) {\r\n\t\t\t\t\r\n\t\t\t\t.wpsm_nav-tabs{\r\n\t\t\tmargin-left:0px !important;\r\n\t\t\tmargin-right:0px !important; \r\n\t\t\t\r\n\t\t}\r\n\t\t\t\t#tab_container_1193 .wpsm_nav-tabs > li{\r\n\t\t\tfloat:none !important;\r\n\t\t}\r\n\t\t\t\r\n\t}\t\t\t\t<\/style>\r\n\t\t\t\t<div id=\"tab_container_1193\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_1193\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  class=\"active\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_1193_1\" aria-controls=\"tabs_desc_1193_1\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>C<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_1193_2\" aria-controls=\"tabs_desc_1193_2\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>C++<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_1193_3\" aria-controls=\"tabs_desc_1193_3\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>Python<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\t\t\t\t <\/ul>\r\n\r\n\t\t\t\t\t  <!-- Tab panes -->\r\n\t\t\t\t\t  <div class=\"tab-content\" id=\"tab-content_1193\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane  in active \" id=\"tabs_desc_1193_1\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"c\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n#include&lt;stdio.h&gt;\r\n#include&lt;string.h&gt;\r\n\r\nint main(){\r\n\r\n  int test;\r\n  scanf(&quot;%d&quot;,&amp;test);\r\n\r\n  while(test--){\r\n\r\n    char s[9999][99999];\r\n    char a[99999];\r\n    scanf(&quot;%s&quot;,a);\r\n\r\n    int len = strlen(a);\r\n    int count = 0;\r\n\r\n    for(int i=1; i&lt;len; i++){\r\n\r\n      int start = 0, end = i;\r\n      if(i&lt;len\/2){\r\n        start = 0;\r\n      }\r\n      else{\r\n        start = i+i-len;\r\n      }\r\n\r\n      while(start&lt;end){\r\n\r\n        int flag = 1;\r\n\r\n        for(int j=start, k=end; j&lt;end; j++, k++){\r\n          if(a[j]!=a[k]){\r\n            flag = 0;\r\n            break;\r\n          }\r\n        }\r\n\r\n        if(flag==1){\r\n\r\n          char temp[20002];\r\n\r\n          for(int k=0,j=start;j&lt;end; j++,k++)\r\n            temp[k] = a[j];\r\n          temp[end-start] = '&#92;0';\r\n\r\n          flag = 0;\r\n\r\n          for(int i=0; i&lt;count; i++){\r\n            if(strcmp(s[i],temp)==0){\r\n              flag = 1;\r\n              break;\r\n            }\r\n          }\r\n\r\n          if(flag == 0)\r\n            strcpy(s[count++],temp);\r\n\r\n        }\r\n        start++;\r\n      }\r\n\r\n    }\r\n\r\n    printf(&quot;%d&#92;n&quot;,count);\r\n\r\n  }\r\n\r\n}\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_1193_2\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"cpp\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n#include&lt;bits\/stdc++.h&gt;\r\nusing namespace std;\r\n\r\nint main(){\r\n\r\n  int test;\r\n  cin&gt;&gt;test;\r\n\r\n  while(test--){\r\n\r\n    char s[9999][99999];\r\n    char a[99999];\r\n    cin&gt;&gt;a;\r\n\r\n    int len = strlen(a);\r\n    int count = 0;\r\n\r\n    for(int i=1; i&lt;len; i++){\r\n\r\n      int start = 0, end = i;\r\n      if(i&lt;len\/2){\r\n        start = 0;\r\n      }\r\n      else{\r\n        start = i+i-len;\r\n      }\r\n\r\n      while(start&lt;end){\r\n\r\n        int flag = 1;\r\n\r\n        for(int j=start, k=end; j&lt;end; j++, k++){\r\n          if(a[j]!=a[k]){\r\n            flag = 0;\r\n            break;\r\n          }\r\n        }\r\n\r\n        if(flag==1){\r\n\r\n          char temp[20002];\r\n\r\n          for(int k=0,j=start;j&lt;end; j++,k++)\r\n            temp[k] = a[j];\r\n          temp[end-start] = '&#92;0';\r\n\r\n          flag = 0;\r\n\r\n          for(int i=0; i&lt;count; i++){\r\n            if(strcmp(s[i],temp)==0){\r\n              flag = 1;\r\n              break;\r\n            }\r\n          }\r\n\r\n          if(flag == 0)\r\n            strcpy(s[count++],temp);\r\n\r\n        }\r\n        start++;\r\n      }\r\n\r\n    }\r\n\r\n    cout&lt;&lt;count&lt;&lt;endl;\r\n\r\n  }\r\n\r\n}\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_1193_3\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"Python\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"Python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\nfor _ in range(int(input())):\r\n\r\n\ts = [[] for x in range(9999)]\r\n\ta = input()\r\n\tl = len(a)\r\n\r\n\tcount = 0\r\n\r\n\tfor i in range(1, l):\r\n\t\t\r\n\t\tstart = 0\r\n\t\tend = i\r\n\r\n\t\tif(i&lt;l\/2):\r\n\t\t\tstart = 0\r\n\t\t\r\n\t\telse:\r\n\t\t\tstart = i+i-l\r\n\t\t\r\n\r\n\t\twhile(start &lt; end):\r\n\r\n\t\t\tflag = 1\r\n\t\t\tk = end\r\n\t\t\t\r\n\t\t\tfor j in range(start, end):\r\n\t\t\t\t\r\n\t\t\t\tif a[j] != a[k]:\r\n\t\t\t\t\tflag = 0\r\n\t\t\t\t\tbreak\r\n\t\t\t\t\r\n\t\t\t\tk += 1\r\n\r\n\t\t\tif(flag==1):\r\n\r\n\t\t\t\ttemp = [&quot;&quot;] * 20002\r\n\t\t\t\tk = 0\r\n\t\t\t\t\r\n\t\t\t\tfor j in range(start, end):\r\n\t\t\t\t\t\r\n\t\t\t\t\ttemp[k] = a[j]\r\n\t\t\t\t\ttemp[end-start] = '&#92;0'\r\n\t\t\t\t\tflag = 0\r\n\t\t\t\t\tk += 1\r\n\r\n\t\t\t\tfor i in range(count):\r\n\r\n\t\t\t\t\tif(s[i] == temp):\r\n\t\t\t\t\t\tflag = 1\r\n\t\t\t\t\t\tbreak\r\n\r\n\t\t\t\tif(flag == 0):\r\n\t\t\t\t\ts[count] = temp\r\n\t\t\t\t\tcount += 1\r\n\t\t\t\r\n\t\t\tstart += 1\r\n\t\t\t\r\n\tprint(count)\r\n\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t <\/div>\r\n\t\t\t\t\t \r\n\t\t\t\t <\/div>\r\n <script>\r\n\t\tjQuery(function () {\r\n\t\t\tjQuery('#myTab_1193 a:first').tab('show')\r\n\t\t});\r\n\t\t\r\n\t\t\t\tjQuery(function(){\r\n\t\t\tvar b=\"fadeIn\";\r\n\t\t\tvar c;\r\n\t\t\tvar a;\r\n\t\t\td(jQuery(\"#myTab_1193 a\"),jQuery(\"#tab-content_1193\"));function d(e,f,g){\r\n\t\t\t\te.click(function(i){\r\n\t\t\t\t\ti.preventDefault();\r\n\t\t\t\t\tjQuery(this).tab(\"show\");\r\n\t\t\t\t\tvar h=jQuery(this).data(\"easein\");\r\n\t\t\t\t\tif(c){c.removeClass(a);}\r\n\t\t\t\t\tif(h){f.find(\"div.active\").addClass(\"animated \"+h);a=h;}\r\n\t\t\t\t\telse{if(g){f.find(\"div.active\").addClass(\"animated \"+g);a=g;}else{f.find(\"div.active\").addClass(\"animated \"+b);a=b;}}c=f.find(\"div.active\");\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\r\n\t\tfunction do_resize(){\r\n\r\n\t\t\tvar width=jQuery( '.tab-content .tab-pane iframe' ).width();\r\n\t\t\tvar height=jQuery( '.tab-content .tab-pane iframe' ).height();\r\n\r\n\t\t\tvar toggleSize = true;\r\n\t\t\tjQuery('iframe').animate({\r\n\t\t\t    width: toggleSize ? width : 640,\r\n\t\t\t    height: toggleSize ? height : 360\r\n\t\t\t  }, 250);\r\n\r\n\t\t\t  toggleSize = !toggleSize;\r\n\t\t}\r\n\r\n\r\n\t<\/script>\r\n\t\t\t\t\r\n\t\t\t\n<p>[forminator_quiz id=&#8221;1194&#8243;]<\/p>\n<p>Space Complexity of this approach would be <code>O(N).<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Concepts Used String Difficulty Level Hard Problem Statement (Simplified): Find the total number of substrings which are the concatenation of the same strings, e.g.PP if formed by concatenating P twice. Test Case Input: 1 xyzxyzxyz Output: 3 Explanation: Here we can see &#8216;xyz&#8217; repeats twice at index 0 and 3 satisfying our requirements. &#8216;yzx&#8217; repeats [&hellip;]<\/p>\n","protected":false},"author":52,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[76],"tags":[82,36,56],"class_list":["post-1192","post","type-post","status-publish","format-standard","hentry","category-strings-interview-questions","tag-hard","tag-interview-coding","tag-strings"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Distint Concat | PrepBytes Blog<\/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:\/\/prepbytes.com\/blog\/distint-concat\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Distint Concat | PrepBytes Blog\" \/>\n<meta property=\"og:description\" content=\"Concepts Used String Difficulty Level Hard Problem Statement (Simplified): Find the total number of substrings which are the concatenation of the same strings, e.g.PP if formed by concatenating P twice. Test Case Input: 1 xyzxyzxyz Output: 3 Explanation: Here we can see &#039;xyz&#039; repeats twice at index 0 and 3 satisfying our requirements. &#039;yzx&#039; repeats [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/distint-concat\/\" \/>\n<meta property=\"og:site_name\" content=\"PrepBytes Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prepbytes0211\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-06-10T14:47:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-06-10T14:48:27+00:00\" \/>\n<meta name=\"author\" content=\"Prepbytes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prepbytes\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/distint-concat\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/distint-concat\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"Distint Concat\",\"datePublished\":\"2020-06-10T14:47:47+00:00\",\"dateModified\":\"2020-06-10T14:48:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/distint-concat\/\"},\"wordCount\":282,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"keywords\":[\"hard\",\"interview-coding\",\"Strings\"],\"articleSection\":[\"Strings Interview Questions\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/distint-concat\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/distint-concat\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/distint-concat\/\",\"name\":\"Distint Concat | PrepBytes Blog\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"datePublished\":\"2020-06-10T14:47:47+00:00\",\"dateModified\":\"2020-06-10T14:48:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/distint-concat\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/distint-concat\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/distint-concat\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Strings Interview Questions\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/strings-interview-questions\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Distint Concat\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/43.205.93.38\/#website\",\"url\":\"http:\/\/43.205.93.38\/\",\"name\":\"PrepBytes Blog\",\"description\":\"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING\",\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/43.205.93.38\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"http:\/\/43.205.93.38\/#organization\",\"name\":\"Prepbytes\",\"url\":\"http:\/\/43.205.93.38\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"contentUrl\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"width\":160,\"height\":160,\"caption\":\"Prepbytes\"},\"image\":{\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/prepbytes0211\/\",\"https:\/\/www.instagram.com\/prepbytes\/\",\"https:\/\/www.linkedin.com\/company\/prepbytes\/\",\"https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA\"]},{\"@type\":\"Person\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\",\"name\":\"Prepbytes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"caption\":\"Prepbytes\"},\"url\":\"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Distint Concat | PrepBytes Blog","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:\/\/prepbytes.com\/blog\/distint-concat\/","og_locale":"en_US","og_type":"article","og_title":"Distint Concat | PrepBytes Blog","og_description":"Concepts Used String Difficulty Level Hard Problem Statement (Simplified): Find the total number of substrings which are the concatenation of the same strings, e.g.PP if formed by concatenating P twice. Test Case Input: 1 xyzxyzxyz Output: 3 Explanation: Here we can see 'xyz' repeats twice at index 0 and 3 satisfying our requirements. 'yzx' repeats [&hellip;]","og_url":"https:\/\/prepbytes.com\/blog\/distint-concat\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2020-06-10T14:47:47+00:00","article_modified_time":"2020-06-10T14:48:27+00:00","author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/distint-concat\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/distint-concat\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"Distint Concat","datePublished":"2020-06-10T14:47:47+00:00","dateModified":"2020-06-10T14:48:27+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/distint-concat\/"},"wordCount":282,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"keywords":["hard","interview-coding","Strings"],"articleSection":["Strings Interview Questions"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/distint-concat\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/distint-concat\/","url":"https:\/\/prepbytes.com\/blog\/distint-concat\/","name":"Distint Concat | PrepBytes Blog","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"datePublished":"2020-06-10T14:47:47+00:00","dateModified":"2020-06-10T14:48:27+00:00","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/distint-concat\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/distint-concat\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/distint-concat\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"Strings Interview Questions","item":"https:\/\/prepbytes.com\/blog\/category\/strings-interview-questions\/"},{"@type":"ListItem","position":3,"name":"Distint Concat"}]},{"@type":"WebSite","@id":"http:\/\/43.205.93.38\/#website","url":"http:\/\/43.205.93.38\/","name":"PrepBytes Blog","description":"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING","publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/43.205.93.38\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"http:\/\/43.205.93.38\/#organization","name":"Prepbytes","url":"http:\/\/43.205.93.38\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/","url":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","contentUrl":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","width":160,"height":160,"caption":"Prepbytes"},"image":{"@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/prepbytes0211\/","https:\/\/www.instagram.com\/prepbytes\/","https:\/\/www.linkedin.com\/company\/prepbytes\/","https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA"]},{"@type":"Person","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e","name":"Prepbytes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","caption":"Prepbytes"},"url":"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/"}]}},"_links":{"self":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/1192","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/comments?post=1192"}],"version-history":[{"count":1,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/1192\/revisions"}],"predecessor-version":[{"id":1195,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/1192\/revisions\/1195"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=1192"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=1192"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=1192"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}