{"id":1176,"date":"2020-06-10T14:27:47","date_gmt":"2020-06-10T14:27:47","guid":{"rendered":"https:\/\/blog.prepbytes.com\/?p=1176"},"modified":"2022-03-28T00:56:24","modified_gmt":"2022-03-28T00:56:24","slug":"branches-of-bytecode","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/","title":{"rendered":"Branches of Bytecode"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645096494450-Article_272.png\" alt=\"\" \/><\/p>\n<h3>Concepts Used<\/h3>\n<blockquote>\n<p>String<\/p>\n<\/blockquote>\n<h3>Difficulty Level<\/h3>\n<blockquote>\n<p>Hard<\/p>\n<\/blockquote>\n<h3>Problem Statement (Simplified):<\/h3>\n<blockquote>\n<p>For given <code>n<\/code> strings and a separator <code>s<\/code>, print <code>n\/2<\/code> number of strings of equal length, by concatenating two substrings with separator. Print the lexicographically smaller strings first. Every string formed must be printed exactly once ( See Test case for explanation ).<\/p>\n<\/blockquote>\n<p><a href=\"https:\/\/mycode.prepbytes.com\/problems\/strings\/BYTECODE\" 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\n4\nd\ncc\njv\ne\n5\n\nOutput:\ncc5d\ne5jv\n\nExplanation:\nHere we have to create 2 strings of equal length with given concatenating character (5) from given 4 strings, so possible cases are:\n\ncc5d\nd5cc\nd5jv\njv5d\ncc5e\ne5cc\ne5jv\njv5e\n\nBut we have to print lexicographically smaller strings, so we print 'cc5d' and 'e5jv'.<\/code><\/pre>\n<h3>Solving Approach :<\/h3>\n<h4>Bruteforce Approach:<\/h4>\n<blockquote>\n<p>1) We can calculate all possible strings of 2 strings from given strings. After finding all possible strings, we print the lexicographically smaller strings.<br \/>\n2) We can form a total <code>^{n}C_{2}<\/code> strings, where <code>n<\/code> is the number of given strings. Hence, this takes O(n<sup>2<\/sup>) time to find all strings. Comparing all strings to find lexicographically smaller strings takes another O(n<sup>3<\/sup>) time. Hence, the total time complexity of the given approach is O(n<sup>3<\/sup>) which is very inefficient for the larger number of strings. Hence we try for a new efficient approach.<\/p>\n<\/blockquote>\n<h4>Efficient Approach:<\/h4>\n<blockquote>\n<p>1) We can solve this problem if we sort all the strings, so that concatenation gives lexicographically smaller strings.<br \/>\n2) We add the separator to the end of all string, which can be removed later.<br \/>\n3) For <code>n\/2<\/code> strings to print, the total length of a string must be the sum of the length of all strings with <code>n\/2<\/code> in addition as there would be n\/2 separators in between, divided by <code>n\/2<\/code> as sum gives total characters in answer, but we need the length of 1 string.<br \/>\n4) We check for all combinations of strings, and concatenate them, one string with length equal to the required length string is our valid string, so we print and remove the last character as that is a separator which is not needed.<br \/>\n5) We remove these two strings so that they are not repeated again.<\/p>\n<\/blockquote>\n<h3>Example<\/h3>\n<blockquote>\n<ul>\n<li>\n<p>Lets take strings discussed in test case section, we have <code>&quot;d&quot;, &quot;cc&quot;, &quot;jv&quot; and &quot;e&quot;<\/code>. Also we have to print <code>N\/2<\/code> i.e. <code>4\/2 =&gt; 2<\/code> strings of equal size.<\/p>\n<\/li>\n<li>\n<p>We concatenate the concatenating character at end of each string. This makes all strings as <code>&quot;d5&quot;, &quot;cc5&quot;, &quot;jv5&quot; and &quot;e5&quot;<\/code>.<\/p>\n<\/li>\n<li>\n<p>Now we sort all the strings lexicographically making array of strings as <code>[&quot;cc5&quot;<\/code>,&quot;d5&quot;<code>,&quot;e5&quot;,&quot;jv5&quot;]<\/code>.<\/p>\n<\/li>\n<li>\n<p>Now we have sorted them in asked order, we can concatenate strings such that their total length becomes the required length i.e. <code>5<\/code> in our case.<\/p>\n<\/li>\n<\/ul>\n<p><strong><em>For string<\/em><\/strong> <code>&quot;cc5&quot;<\/code> :<\/p>\n<ul>\n<li>Second string = <code>&quot;d5&quot;<\/code>, as their total size is <code>5<\/code>, so we print them as one and drop the last character from second string. Also, we make them null so that they can&#8217;t be used again. We print <code>&quot;cc5d&quot;<\/code>.<\/li>\n<li>Our final array of strings becomes <code>[&quot;&quot;,&quot;&quot;,&quot;e5&quot;,&quot;jv5&quot;]<\/code>.<\/li>\n<\/ul>\n<p><strong><em>For string<\/em><\/strong> <code>&quot;e5&quot;<\/code> :<\/p>\n<ul>\n<li>\n<p>Second string = <code>&quot;jv5&quot;<\/code>, as their total size is <code>5<\/code>, so we print them as one and drop the last character from second string. Also, we make them null so that they can&#8217;t be used again. We print <code>&quot;e5jv&quot;<\/code>.<\/p>\n<\/li>\n<li>\n<p>Our final array of strings becomes <code>[&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;]<\/code>.<\/p>\n<\/li>\n<li>\n<p>As our whole array is used. We terminate the program. For a better reference, you can watch the following video.<\/p>\n<\/li>\n<\/ul>\n<\/blockquote>\n<h3>Youtube Video<\/h3>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=BfoV8Lq5COA&amp;amp;t=769s\">BYTECODE Solution (Youtube)<\/a><\/p>\n<h3>Solutions<\/h3>\n<p>\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_1179 {\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_1179 .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_1179 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_1179 .wpsm_nav-tabs > li.active > a, #tab_container_1179 .wpsm_nav-tabs > li.active > a:hover, #tab_container_1179 .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_1179 .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_1179 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_1179 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_1179 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_1179 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_1179 .wpsm_nav-tabs > li > a:hover , #tab_container_1179 .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_1179 .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_1179 .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_1179 .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_1179 .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_1179 .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_1179 .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_1179 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_1179 .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_1179 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_1179 .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_1179 .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_1179\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_1179\">\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_1179_1\" aria-controls=\"tabs_desc_1179_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_1179_2\" aria-controls=\"tabs_desc_1179_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_1179_3\" aria-controls=\"tabs_desc_1179_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>Java<\/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_1179\">\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_1179_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    int n;\r\n    scanf(&quot;%d&quot;,&amp;n);\r\n\r\n    char a[n][99999];\r\n    for(int i=0; i&lt;n; i++)\r\n      scanf(&quot;%s&quot;,a[i]);\r\n\r\n    char seperator[2];\r\n    scanf(&quot;%s&quot;,seperator);\r\n\r\n    int total_len = 0;\r\n    for(int i=0; i&lt;n; i++){\r\n      strcat(a[i],seperator);\r\n      total_len += strlen(a[i]);\r\n    }\r\n\r\n    total_len = total_len\/(n\/2);\r\n    for(int i=0; i&lt;n; i++)\r\n      for(int j=i+1; j&lt;n; j++)\r\n        if(strcmp(a[i],a[j])&gt;0){\r\n          char temp[99999];\r\n          strcpy(temp,a[i]);\r\n          strcpy(a[i],a[j]);\r\n          strcpy(a[j],temp);\r\n        }\r\n\r\n    for(int i=0; i&lt;n; i++)\r\n      for(int j=i+1; j&lt;n; j++){\r\n        if(strlen(a[i])+strlen(a[j]) == total_len){\r\n          printf(&quot;%s&quot;,a[i]);\r\n          int len = strlen(a[j]);\r\n          a[j][len-1] = '&#92;0';\r\n          printf(&quot;%s&#92;n&quot;,a[j]);\r\n          a[i][0] = '&#92;0';\r\n          a[j][0] = '&#92;0'; \r\n        }\r\n      }\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_1179_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  int test;\r\n  cin&gt;&gt;test;\r\n\r\n  while(test--){\r\n\r\n    int n;\r\n    cin&gt;&gt;n;\r\n\r\n    char a[n][99999];\r\n    for(int i=0; i&lt;n; i++)\r\n      cin&gt;&gt;a[i];\r\n\r\n    char seperator[2];\r\n    cin&gt;&gt;seperator;\r\n\r\n    int total_len = 0;\r\n    for(int i=0; i&lt;n; i++){\r\n      strcat(a[i],seperator);\r\n      total_len += strlen(a[i]);\r\n    }\r\n\r\n    total_len = total_len\/(n\/2);\r\n    for(int i=0; i&lt;n; i++)\r\n      for(int j=i+1; j&lt;n; j++)\r\n        if(strcmp(a[i],a[j])&gt;0){\r\n          char temp[99999];\r\n          strcpy(temp,a[i]);\r\n          strcpy(a[i],a[j]);\r\n          strcpy(a[j],temp);\r\n        }\r\n\r\n    for(int i=0; i&lt;n; i++)\r\n      for(int j=i+1; j&lt;n; j++){\r\n        if(strlen(a[i])+strlen(a[j]) == total_len){\r\n          cout&lt;&lt;a[i];\r\n          int len = strlen(a[j]);\r\n          a[j][len-1] = '&#92;0';\r\n          cout&lt;&lt;a[j]&lt;&lt;endl;\r\n          a[i][0] = '&#92;0';\r\n          a[j][0] = '&#92;0'; \r\n        }\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_1179_3\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"java\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\nimport java.util.*;\r\nimport java.io.*;\r\n\r\npublic class Main{\r\n  public static void main(String args[]) throws IOException{\r\n\r\n    Scanner sc = new Scanner(System.in);\r\n    int test = sc.nextInt();\r\n\r\n    while(test--&gt;0){\r\n\r\n      int n = sc.nextInt();\r\n\r\n      String a = new String[n];\r\n      for(int i=0; i&lt;n; i++)\r\n        a[i] = sc.next();\r\n\r\n      String seperator = sc.next();\r\n\r\n      int total_len = 0;\r\n      for(int i=0; i&lt;n; i++){\r\n        a[i] += seperator;\r\n        total_len += a[i].length();\r\n      }\r\n\r\n      total_len = total_len\/(n\/2);\r\n      for(int i=0; i&lt;n; i++)\r\n        for(int j=i+1; j&lt;n; j++)\r\n          if(a[i].compareTo(a[j])&gt;0){\r\n            String temp = a[i];\r\n            a[i] = a[j];\r\n            a[j] = temp;\r\n          }\r\n\r\n      for(int i=0; i&lt;n; i++)\r\n        for(int j=i+1; j&lt;n; j++){\r\n          if(a[i].length()+a[j].length() == total_len){\r\n            System.out.println(a[i]+a[j].substring(0,a[j].length()-1));\r\n            a[i] = &quot;&quot;;\r\n            a[j] = &quot;&quot;; \r\n          }\r\n        }\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\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_1179 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_1179 a\"),jQuery(\"#tab-content_1179\"));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<br \/>\n<strong>Space Complexity<\/strong> of this approach would be <code>O(1).<\/code><br \/>\n[forminator_quiz id=&quot;1182&quot;]<\/p>\n<p>This article tried to discuss <strong>String<\/strong>. Hope this blog helps you understand and solve the problem. To practice more problems on String you can check out <a href=\"#\"><\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Concepts Used String Difficulty Level Hard Problem Statement (Simplified): For given n strings and a separator s, print n\/2 number of strings of equal length, by concatenating two substrings with separator. Print the lexicographically smaller strings first. Every string formed must be printed exactly once ( See Test case for explanation ). Test Case Input: [&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-1176","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>Strings Interview Programming | Branches of Bytecode | Prepbytes<\/title>\n<meta name=\"description\" content=\"For given n strings and a separator s, print n\/2 number of strings of equal length, by concatenating two substrings with separator. Print the lexicographically smaller strings first.\" \/>\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\/branches-of-bytecode\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Strings Interview Programming | Branches of Bytecode | Prepbytes\" \/>\n<meta property=\"og:description\" content=\"For given n strings and a separator s, print n\/2 number of strings of equal length, by concatenating two substrings with separator. Print the lexicographically smaller strings first.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/\" \/>\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:27:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-28T00:56:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645096494450-Article_272.png\" \/>\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=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"Branches of Bytecode\",\"datePublished\":\"2020-06-10T14:27:47+00:00\",\"dateModified\":\"2022-03-28T00:56:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/\"},\"wordCount\":512,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645096494450-Article_272.png\",\"keywords\":[\"hard\",\"interview-coding\",\"Strings\"],\"articleSection\":[\"Strings Interview Questions\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/\",\"name\":\"Strings Interview Programming | Branches of Bytecode | Prepbytes\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645096494450-Article_272.png\",\"datePublished\":\"2020-06-10T14:27:47+00:00\",\"dateModified\":\"2022-03-28T00:56:24+00:00\",\"description\":\"For given n strings and a separator s, print n\/2 number of strings of equal length, by concatenating two substrings with separator. Print the lexicographically smaller strings first.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645096494450-Article_272.png\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645096494450-Article_272.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/#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\":\"Branches of Bytecode\"}]},{\"@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":"Strings Interview Programming | Branches of Bytecode | Prepbytes","description":"For given n strings and a separator s, print n\/2 number of strings of equal length, by concatenating two substrings with separator. Print the lexicographically smaller strings first.","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\/branches-of-bytecode\/","og_locale":"en_US","og_type":"article","og_title":"Strings Interview Programming | Branches of Bytecode | Prepbytes","og_description":"For given n strings and a separator s, print n\/2 number of strings of equal length, by concatenating two substrings with separator. Print the lexicographically smaller strings first.","og_url":"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2020-06-10T14:27:47+00:00","article_modified_time":"2022-03-28T00:56:24+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645096494450-Article_272.png","type":"","width":"","height":""}],"author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"Branches of Bytecode","datePublished":"2020-06-10T14:27:47+00:00","dateModified":"2022-03-28T00:56:24+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/"},"wordCount":512,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645096494450-Article_272.png","keywords":["hard","interview-coding","Strings"],"articleSection":["Strings Interview Questions"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/","url":"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/","name":"Strings Interview Programming | Branches of Bytecode | Prepbytes","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645096494450-Article_272.png","datePublished":"2020-06-10T14:27:47+00:00","dateModified":"2022-03-28T00:56:24+00:00","description":"For given n strings and a separator s, print n\/2 number of strings of equal length, by concatenating two substrings with separator. Print the lexicographically smaller strings first.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645096494450-Article_272.png","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645096494450-Article_272.png"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/branches-of-bytecode\/#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":"Branches of Bytecode"}]},{"@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\/1176","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=1176"}],"version-history":[{"count":11,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/1176\/revisions"}],"predecessor-version":[{"id":8261,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/1176\/revisions\/8261"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=1176"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=1176"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=1176"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}