{"id":870,"date":"2020-06-10T07:58:47","date_gmt":"2020-06-10T07:58:47","guid":{"rendered":"https:\/\/blog.prepbytes.com\/?p=870"},"modified":"2022-03-25T10:27:34","modified_gmt":"2022-03-25T10:27:34","slug":"minimum-characters-required-to-add-to-given-string-to-make-it-palindrome","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/","title":{"rendered":"Minimum characters required to add to given string to make it palindrome"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645179812842-Article_406.png\" alt=\"\" \/><\/p>\n<h3>Concepts Used<\/h3>\n<blockquote>\n<p>Strings, LPS array KPS Algorithm<\/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>Find the minimum number of characters required to add to the given string to make it a palindrome.<\/p>\n<\/blockquote>\n<p><a href=\"https:\/\/mycode.prepbytes.com\/problems\/strings\/MAKPALIND\" 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:\n2\naab\nabc\n\nOutput:\n1\n2\n\nExplanation:\nCase-1:\nWe can make string 'aab' a palindrome by adding 'b' in front of the string. Adding 'b' converts string to 'baab'. So the answer is 1.\n\nCase-2:\nWe can make string 'abc' a palindrome by adding 'cb' in front of the string. Adding 'cb' converts string to 'cbabc'. So the answer is 2.<\/code><\/pre>\n<h3>Solving Approach :<\/h3>\n<p><strong><em>LPS Array:<\/em><\/strong> A <code>LPS<\/code> array (Longest Prefix that is suffix) is an array which provide length and index of prefix of string which is also suffix of array. For example, if string is &quot;<code>abcbdab<\/code>&quot;, <code>LPS<\/code> array for this string would be <code>[0,0,0,0,0,1,2]<\/code> suggesting the values at index <code>5<\/code> and <code>6<\/code> are <code>1\u02e2\u1d57<\/code> and <code>2\u207f\u1d48<\/code> character of string respectively.<\/p>\n<blockquote>\n<p>1) We use <code>LPS<\/code> array from <code>KPS Algorithm<\/code> to solve this problem.<br \/>\n2) We concatenate the reverse of the string with any random non-alphabetic character in last to the current string.<br \/>\n3) <code>LPS<\/code> array defines the largest <code>prefix<\/code> which is also <code>suffix<\/code> in the string.<br \/>\n4) Here we are only interested in the last value of this <code>LPS<\/code> array because it shows us the largest suffix of the reversed string that matches the prefix of the original string i.e these many characters already satisfy the palindrome property.<br \/>\n5) Finally the minimum number of characters needed to make the string a palindrome is the length of the input string minus last entry of our <code>LPS<\/code> array.<\/p>\n<\/blockquote>\n<h3>Example<\/h3>\n<blockquote>\n<ul>\n<li>Lets assume the string be &quot;<code>codec<\/code>&quot;, its reverse would be &quot;<code>cedoc<\/code>&quot;, so we concatenate both strings using a random character in between creating a new string i.e. &quot;codec@cedoc&quot;.<\/li>\n<li>LPS array for the above string will be <code>[0,0,0,0,1,0,1,0,0,0,1]<\/code> which means last character of above string is <code>1\u02e2\u1d57<\/code><br \/>\ncharacter of array. By <code>LPS<\/code> we can see, first and last element of given string is matching. Hence we need to insert <code>lengthOfString<\/code> &#8211; <code>lastIndexOfLPSArray<\/code> elements in string to make it palindrome. Hence <code>5-1<\/code> i.e. <code>4<\/code> elements are required.<\/li>\n<\/ul>\n<\/blockquote>\n<h3>Solutions<\/h3>\n\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_872 {\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_872 .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_872 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_872 .wpsm_nav-tabs > li.active > a, #tab_container_872 .wpsm_nav-tabs > li.active > a:hover, #tab_container_872 .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_872 .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_872 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_872 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_872 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_872 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_872 .wpsm_nav-tabs > li > a:hover , #tab_container_872 .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_872 .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_872 .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_872 .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_872 .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_872 .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_872 .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_872 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_872 .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_872 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_872 .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_872 .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_872\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_872\">\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_872_1\" aria-controls=\"tabs_desc_872_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_872_2\" aria-controls=\"tabs_desc_872_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_872_3\" aria-controls=\"tabs_desc_872_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_872\">\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_872_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(\"%d\", &amp;test);\r\n\r\n  while(test--){\r\n\r\n    char a[1000000];\r\n    scanf(\"%s\",a);\r\n\r\n    int sizeOfString = strlen(a);\r\n\r\n    \/\/Concatenating reverse of string to string\r\n    int n=sizeOfString;\r\n\r\n    a[n] = '`';\r\n    a[n+1] = '&#92;0';\r\n\r\n    n = strlen(a);\r\n\r\n    for(int i=0; i&lt;n-1; i++){\r\n      a[i+n] = a[n-i-2];\r\n    }\r\n\r\n    a[(2*n) + 1] = '&#92;0';\r\n    int lps[strlen(a)];\r\n\r\n    \/\/Creating lps array for the concatenated string\r\n    lps[0] = 0; \r\n    int i = 1, len=0; \r\n    while (i &lt; strlen(a)) \r\n    { \r\n        if (a[i] == a[len]) \r\n        { \r\n            len++; \r\n            lps[i] = len; \r\n            i++; \r\n        } \r\n        else \r\n        { \r\n            if (len != 0) \r\n            { \r\n                len = lps[len-1]; \r\n            } \r\n            else\r\n            { \r\n                lps[i] = 0; \r\n                i++; \r\n            } \r\n        } \r\n    }\r\n\r\n    printf(\"%d&#92;n\",sizeOfString-lps[strlen(a)-1]);\r\n  }\r\n\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\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_872_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    string a;\r\n    cin&gt;&gt;a;\r\n\r\n    int sizeOfString = a.length();\r\n\r\n    \/\/Concatenating reverse of string to string\r\n    string b = a;\r\n    reverse(b.begin(), b.end());\r\n    a += a +'@' + b;\r\n\r\n    int lps[a.length()];\r\n\r\n    \/\/Creating lps array for the concatenated string\r\n    lps[0] = 0; \r\n    int i = 1, len=0; \r\n    while (i &lt; a.length()) \r\n    { \r\n        if (a[i] == a[len]) \r\n        { \r\n            len++; \r\n            lps[i] = len; \r\n            i++; \r\n        } \r\n        else \r\n        { \r\n            if (len != 0) \r\n            { \r\n                len = lps[len-1]; \r\n            } \r\n            else\r\n            { \r\n                lps[i] = 0; \r\n                i++; \r\n            } \r\n        } \r\n    }\r\n\r\n    cout&lt;&lt;sizeOfString-lps[a.length()-1]&lt;&lt;endl;\r\n  }\r\n\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\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_872_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!=0){\r\n\r\n        String a = sc.next();\r\n\r\n        int sizeOfString = a.length();\r\n\r\n        \/\/Concatenating reverse of string to string\r\n\r\n        StringBuilder sb = new StringBuilder(a); \r\n        sb.reverse();\r\n\r\n        a += '@';\r\n\r\n        a += sb.toString();\r\n\r\n        int lps[] = new int[a.length()];\r\n\r\n        \/\/Creating lps array for the concatenated string\r\n        lps[0] = 0; \r\n        int i = 1, len=0; \r\n        while (i &lt; a.length()) \r\n        { \r\n            if (a.charAt(i) == a.charAt(len)) \r\n            { \r\n                len++; \r\n                lps[i] = len; \r\n                i++; \r\n            } \r\n            else \r\n            { \r\n                if (len != 0) \r\n                { \r\n                    len = lps[len-1]; \r\n                } \r\n                else\r\n                { \r\n                    lps[i] = 0; \r\n                    i++; \r\n                } \r\n            } \r\n        }\r\n\r\n        System.out.println(sizeOfString-lps[a.length()-1]);\r\n\r\n        test--;\r\n      }\r\n  }\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_872 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_872 a\"),jQuery(\"#tab-content_872\"));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=&quot;873&quot;]<\/p>\n<p>This article tried to discuss  Strings, LPS array KPS Algorithm. Hope this blog helps you understand and solve the problem. To practice more problems on  Strings, LPS array KPS Algorithm you can check out <a href=\"#\"><\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Concepts Used Strings, LPS array KPS Algorithm Difficulty Level Hard Problem Statement (Simplified): Find the minimum number of characters required to add to the given string to make it a palindrome. Test Case Input: 2 aab abc Output: 1 2 Explanation: Case-1: We can make string &#8216;aab&#8217; a palindrome by adding &#8216;b&#8217; in front of [&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":[53],"tags":[36,57,56],"class_list":["post-870","post","type-post","status-publish","format-standard","hentry","category-strings","tag-interview-coding","tag-palindromes","tag-strings"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>General Coding | prepbytes |<\/title>\n<meta name=\"description\" content=\"A LPS array (Longest Prefix that is suffix) is an array which provide length and index of prefix of string which is also suffix of array.\" \/>\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\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"General Coding | prepbytes |\" \/>\n<meta property=\"og:description\" content=\"A LPS array (Longest Prefix that is suffix) is an array which provide length and index of prefix of string which is also suffix of array.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/\" \/>\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-10T07:58:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-25T10:27:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645179812842-Article_406.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=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"Minimum characters required to add to given string to make it palindrome\",\"datePublished\":\"2020-06-10T07:58:47+00:00\",\"dateModified\":\"2022-03-25T10:27:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/\"},\"wordCount\":331,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645179812842-Article_406.png\",\"keywords\":[\"interview-coding\",\"Palindromes\",\"Strings\"],\"articleSection\":[\"Strings\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/\",\"name\":\"General Coding | prepbytes |\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645179812842-Article_406.png\",\"datePublished\":\"2020-06-10T07:58:47+00:00\",\"dateModified\":\"2022-03-25T10:27:34+00:00\",\"description\":\"A LPS array (Longest Prefix that is suffix) is an array which provide length and index of prefix of string which is also suffix of array.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645179812842-Article_406.png\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645179812842-Article_406.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"General Coding\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/general-coding\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Minimum characters required to add to given string to make it palindrome\"}]},{\"@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":"General Coding | prepbytes |","description":"A LPS array (Longest Prefix that is suffix) is an array which provide length and index of prefix of string which is also suffix of array.","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\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/","og_locale":"en_US","og_type":"article","og_title":"General Coding | prepbytes |","og_description":"A LPS array (Longest Prefix that is suffix) is an array which provide length and index of prefix of string which is also suffix of array.","og_url":"https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2020-06-10T07:58:47+00:00","article_modified_time":"2022-03-25T10:27:34+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645179812842-Article_406.png","type":"","width":"","height":""}],"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\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"Minimum characters required to add to given string to make it palindrome","datePublished":"2020-06-10T07:58:47+00:00","dateModified":"2022-03-25T10:27:34+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/"},"wordCount":331,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645179812842-Article_406.png","keywords":["interview-coding","Palindromes","Strings"],"articleSection":["Strings"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/","url":"https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/","name":"General Coding | prepbytes |","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645179812842-Article_406.png","datePublished":"2020-06-10T07:58:47+00:00","dateModified":"2022-03-25T10:27:34+00:00","description":"A LPS array (Longest Prefix that is suffix) is an array which provide length and index of prefix of string which is also suffix of array.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645179812842-Article_406.png","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645179812842-Article_406.png"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/minimum-characters-required-to-add-to-given-string-to-make-it-palindrome\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"General Coding","item":"https:\/\/prepbytes.com\/blog\/category\/general-coding\/"},{"@type":"ListItem","position":3,"name":"Minimum characters required to add to given string to make it palindrome"}]},{"@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\/870","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=870"}],"version-history":[{"count":10,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/870\/revisions"}],"predecessor-version":[{"id":8215,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/870\/revisions\/8215"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=870"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=870"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=870"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}