{"id":762,"date":"2020-06-10T14:07:15","date_gmt":"2020-06-10T14:07:15","guid":{"rendered":"https:\/\/blog.prepbytes.com\/?p=762"},"modified":"2022-04-06T10:32:25","modified_gmt":"2022-04-06T10:32:25","slug":"find-the-closest-palindrome","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/find-the-closest-palindrome\/","title":{"rendered":"Find the Closest Palindrome"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645100151549-Article_321.png\" alt=\"\" \/><\/p>\n<h3>Concepts Used<\/h3>\n<blockquote>\n<p>Strings<\/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 numbers we have to print the nearest anagram to it if two numbers are equidistant and anagram to the given number, print out the smallest. If the number is a palindrome itself, print its nearest palindrome.<\/p>\n<\/blockquote>\n<p><a href=\"https:\/\/mycode.prepbytes.com\/problems\/strings\/CLOSEPALIN\" 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:\n    3\n    6\n    127\n    121\n\n    Output:\n    5\n    131\n    111\n\n    Explanation:\n    Case-1:\n    5 is the nearest palindrome for 6.\n\n    Case-2:\n    127 has 121 and 131 as palindrome near to it. 131 is nearest to 127, so 131 is our answer.\n\n    Case-3:\n    121 has 111 and 131 as palindrome near to it. Both are equidistant to it. So we print the smallest one. Hence, 111 is our answer.<\/code><\/pre>\n<h3>Solving Approach :<\/h3>\n<p>For checking out the nearest palindrome, we check different cases.<\/p>\n<ul>\n<li><code>Case -1:<\/code> If the number is a single digit, it answers will be one less to it. <\/li>\n<li><code>Case -2:<\/code> If the number contains only 9&#8217;s at every place, the answer will be the number+2 always.<\/li>\n<li><code>Case -3 :<\/code> If number is in form of <code>1000..{0,1}<\/code>, for example 10, 101, 100,1001 etc. The nearest palindromic number will be <code>n-1<\/code> times 9 where <code>n<\/code> is the length of number. For example <code>1001<\/code>&#8216;s nearest palindrome is <code>999<\/code>.<\/li>\n<li><code>Case -4:<\/code> If the number is not a palindrome, and does not come in the above-mentioned cases, then we print out the first half of number as the second half, so <code>abcdef<\/code> is printed as <code>abccba<\/code>.<\/li>\n<li><code>Case -5:<\/code> If the number is a palindrome, we decrease the central digit by one in one case, and increase by 1 in second. On comparing whichever produces the smallest number we print that case as our result.<br \/>\n<blockquote><\/blockquote>\n<\/li>\n<\/ul>\n<h4>Example<\/h4>\n<p>Let&#8217;s discuss above cases with examples:  <\/p>\n<p><strong><em>Case-1: If number is single is digit.<\/em><\/strong><br \/>\nLets assume number to be <code>5<\/code>, so we print <code>1<\/code> number less to it, so <code>4<\/code> is answer.  <\/p>\n<p><strong><em>Case-2: If number contains only 9 in it.<\/em><\/strong><br \/>\nLets assume number to be <code>999<\/code>, so answer would be <code>number+<\/code> 2, Hence <code>1001<\/code> is our answer.  <\/p>\n<p><strong><em>Case-3: If number contains 0 and 1 only, and number ends with 1.<\/em><\/strong><br \/>\nLets assume number to be <code>11<\/code>, so answer would be <code>number-<\/code> 2, Hence <code>9<\/code> is our answer.  <\/p>\n<p><strong><em>Case-4: If number is not a palindrome.<\/em><\/strong><br \/>\nLets assume number to be <code>12344<\/code>, so answer would be <code>FirstHalf<\/code> + <code>middleNumber<\/code> + (<code>FirstHalf<\/code> <code>in<\/code> <code>reversed<\/code> <code>order<\/code>), Hence <code>12321<\/code> is our answer.  <\/p>\n<p><strong><em>Case-5: If number is palindrome.<\/em><\/strong><br \/>\nLets assume two numbers here, if number is <code>12321<\/code>, middle digit is <code>3<\/code>, so we decrement middle digit by <code>1<\/code>. So, our answer is <code>12221<\/code>.  <\/p>\n<p>If number is <code>12121<\/code>, middle digit is <code>1<\/code>, so we increment middle digit by <code>1<\/code>. So, our answer is <code>12221<\/code>.<\/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_1177 {\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_1177 .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_1177 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_1177 .wpsm_nav-tabs > li.active > a, #tab_container_1177 .wpsm_nav-tabs > li.active > a:hover, #tab_container_1177 .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_1177 .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_1177 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_1177 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_1177 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_1177 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_1177 .wpsm_nav-tabs > li > a:hover , #tab_container_1177 .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_1177 .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_1177 .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_1177 .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_1177 .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_1177 .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_1177 .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_1177 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_1177 .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_1177 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_1177 .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_1177 .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_1177\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_1177\">\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_1177_1\" aria-controls=\"tabs_desc_1177_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_1177_2\" aria-controls=\"tabs_desc_1177_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_1177_3\" aria-controls=\"tabs_desc_1177_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_1177\">\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_1177_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\nvoid mirror(char n[]) {\r\n        for (int i = 0, j = strlen(n) - 1; i &lt; j; i++, j--)\r\n            n[j] = n[i];\r\n    }\r\n\r\nchar* getUp(char raw[]) {\r\n    int mid = (strlen(raw) - 1) \/ 2;\r\n    while (raw[mid] == '9') {\r\n        raw[mid] = '0';\r\n        mid--;\r\n    }\r\n    if (mid == -1) {\r\n    char a[20] = &quot;1&quot;;\r\n    strcat(a,raw);\r\n    strcpy(raw,a);\r\n  }\r\n    else\r\n        raw[mid] += 1;\r\n    mirror(raw);\r\n  return raw;\r\n}\r\n\r\nchar* getLow(char raw[]) {\r\n    int mid = (strlen(raw) - 1) \/ 2;\r\n    while (raw[mid] == '0') {\r\n        raw[mid] = '9';\r\n        mid--;\r\n    }\r\n    if (mid == 0 &amp;&amp; raw[mid] == '1' &amp;&amp; strlen(raw) &gt; 1) {\r\n        for (int i = 0; i &lt; strlen(raw) - 1; i++)\r\n            raw[i] = '9';\r\n           raw[strlen(raw) - 1] = '&#92;0';\r\n    } else {\r\n        raw[mid] -= 1;\r\n        mirror(raw);\r\n    }\r\n    return raw;\r\n}\r\n\r\nlong long stoll(char a[]){\r\n  long long val=0, power=1;\r\n  for(int i=strlen(a)-1; i&gt;=0; i--){\r\n    val += power*(a[i]-'0');\r\n    power*=10;\r\n  }\r\n  return val;\r\n}\r\n\r\nint main(){\r\n   int t;\r\n   scanf(&quot;%d&quot;,&amp;t);\r\n   while(t--){\r\n      char n[20];\r\n      scanf(&quot;%s&quot;,n);\r\n      char raw[20], temp[20]; \r\n      strcpy(raw,n);\r\n      strcpy(temp,raw);\r\n      mirror(n);\r\n      char up[20];\r\n      stoll(n) &gt; stoll(raw) ? strcpy(up,n) : strcpy(up,getUp(raw));\r\n      strcpy(raw,temp);\r\n      char low[20];\r\n      stoll(n) &lt; stoll(raw) ? strcpy(low,n) : strcpy(low,getLow(raw));\r\n      strcpy(raw,temp);\r\n      char str[20];\r\n      long long upN=stoll(up), nN=stoll(raw),lowN=stoll(low);\r\n      if(nN-lowN == upN-nN)\r\n        printf(&quot;%s&#92;n&quot;,low);\r\n      else {\r\n        if(nN-lowN &lt; upN-nN)\r\n          printf(&quot;%s&#92;n&quot;,low);\r\n        else\r\n          printf(&quot;%s&#92;n&quot;,up);\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_1177_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\nvoid mirror(string&amp; n) {\r\n        for (int i = 0, j = n.size() - 1; i &lt; j; i++, j--)\r\n            n[j] = n[i];\r\n    }\r\n    string getUp(string raw) {\r\n        int mid = (raw.size() - 1) \/ 2;\r\n        while (raw[mid] == '9') {\r\n            raw[mid] = '0';\r\n            mid--;\r\n        }\r\n        if (mid == -1) raw = &quot;1&quot; + raw;\r\n        else\r\n            raw[mid] += 1;\r\n        mirror(raw);\r\n        return raw;\r\n    }\r\n    string getLow(string raw) {\r\n        int mid = (raw.size() - 1) \/ 2;\r\n        while (raw[mid] == '0') {\r\n            raw[mid] = '9';\r\n            mid--;\r\n        }\r\n        if (mid == 0 &amp;&amp; raw[mid] == '1' &amp;&amp; raw.size() &gt; 1) {\r\n            for (int i = 0; i &lt; raw.size() - 1; i++)\r\n                raw[i] = '9';\r\n            raw[raw.size() - 1] = '&#92;0';\r\n        } else {\r\n            raw[mid] -= 1;\r\n            mirror(raw);\r\n        }\r\n        return raw;\r\n    }\r\n\r\nint main()\r\n{\r\n   int t;\r\n   cin&gt;&gt;t;\r\n   while(t--){\r\n       string n;\r\n       cin&gt;&gt;n;\r\n       string raw = n;\r\n       mirror(n);\r\n       string up = stoll(n) &gt; stoll(raw) ? n : getUp(raw);\r\n       string low = stoll(n) &lt; stoll(raw) ? n : getLow(raw);\r\n         string str= stoll(up) - stoll(raw) &gt;= stoll(raw) - stoll(low) ? low : up;\r\n       cout&lt;&lt;str&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_1177_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\n\r\nimport java.util.*;\r\nimport java.io.*;\r\n\r\npublic class Main{\r\n\r\n  static String mirror(String s){\r\n    StringBuilder temp  = new StringBuilder();\r\n    if(s.length()%2==0 ){\r\n        s = s.substring(0, s.length()\/2 ); \r\n        temp.append(s);\r\n        temp.reverse();\r\n        s += temp;\r\n    }\r\n    else{\r\n        s = s.substring(0, s.length()\/2 + 1 );\r\n        temp.append(s.substring(0, s.length()-1));\r\n        temp.reverse();\r\n        s += temp;\r\n    }\r\n    return s;\r\n  }\r\n\r\n  static String getUp(String raw) {\r\n    int mid = (raw.length() - 1) \/ 2;\r\n    while (raw.charAt(mid) == '9') {\r\n      raw = raw.substring(0,mid) + '0' + raw.substring(mid+1);\r\n      mid--;\r\n    }\r\n    if (mid == -1) raw = &quot;1&quot; + raw;\r\n    else\r\n      raw = raw.substring(0,mid) + (char)((int)(raw.charAt(mid))+1) + raw.substring(mid+1);\r\n      \/\/ raw.charAt(mid) += 1;\r\n    raw  = mirror(raw);\r\n    return raw;\r\n  }\r\n\r\n  static String getLow(String raw) {\r\n    int mid = (raw.length() - 1) \/ 2;\r\n    while (raw.charAt(mid) == '0') {\r\n      raw = raw.substring(0,mid) + '9' + raw.substring(mid+1);\r\n      \/\/ raw.charAt(mid) = '9';\r\n      mid--;\r\n    }\r\n    if (mid == 0 &amp;&amp; raw.charAt(mid) == '1' &amp;&amp; raw.length() &gt; 1) {\r\n      for (int i = 0; i &lt; raw.length() - 1; i++)\r\n        raw = raw.substring(0,i) + '9' + raw.substring(i+1);\r\n      \/\/ raw[i] = '9';\r\n      raw = raw.substring(0, raw.length()-1);\r\n    } else {\r\n      raw = raw.substring(0,mid) + (char)((int)(raw.charAt(mid))-1) + raw.substring(mid+1);\r\n      raw = mirror(raw);\r\n    }\r\n    return raw;\r\n  }\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      String n = sc.next();\r\n      String raw = n;\r\n      n = mirror(n);\r\n      String up = Long.parseLong(n) &gt; Long.parseLong(raw) ? n : getUp(raw);\r\n      String low = Long.parseLong(n) &lt; Long.parseLong(raw) ? n : getLow(raw);\r\n      String str= Long.parseLong(up) - Long.parseLong(raw) &gt;= Long.parseLong(raw) - Long.parseLong(low) ? low : up;\r\n      System.out.println(str);\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_1177 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_1177 a\"),jQuery(\"#tab-content_1177\"));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(N).<\/code><\/p>\n<p>[forminator_quiz id=&quot;777&quot;]<\/p>\n<p>This article tried to discuss the concepts of <strong>Strings<\/strong>. Hope this blog helps you understand and solve the problem. To practice more problems on Strings you can check out <a href=\"#\"><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Concepts Used Strings Difficulty Level Hard Problem Statement (Simplified): For given numbers we have to print the nearest anagram to it if two numbers are equidistant and anagram to the given number, print out the smallest. If the number is a palindrome itself, print its nearest palindrome. Test Case Input: 3 6 127 121 Output: [&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":[75],"tags":[38,82,56],"class_list":["post-762","post","type-post","status-publish","format-standard","hentry","category-strings-competitive-programming","tag-competitive-coding","tag-hard","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 | Find the Closest Palindrome|<\/title>\n<meta name=\"description\" content=\"For given numbers we have to print the nearest anagram to it if two numbers are equidistant and anagram to the given number, print out the smallest. If the number is a palindrome itself\" \/>\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\/find-the-closest-palindrome\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Strings Interview Programming | Find the Closest Palindrome|\" \/>\n<meta property=\"og:description\" content=\"For given numbers we have to print the nearest anagram to it if two numbers are equidistant and anagram to the given number, print out the smallest. If the number is a palindrome itself\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/find-the-closest-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-10T14:07:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-04-06T10:32:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645100151549-Article_321.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\/find-the-closest-palindrome\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/find-the-closest-palindrome\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"Find the Closest Palindrome\",\"datePublished\":\"2020-06-10T14:07:15+00:00\",\"dateModified\":\"2022-04-06T10:32:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/find-the-closest-palindrome\/\"},\"wordCount\":371,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/find-the-closest-palindrome\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645100151549-Article_321.png\",\"keywords\":[\"competitive coding\",\"hard\",\"Strings\"],\"articleSection\":[\"Strings Competitive Programming\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/find-the-closest-palindrome\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/find-the-closest-palindrome\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/find-the-closest-palindrome\/\",\"name\":\"Strings Interview Programming | Find the Closest Palindrome|\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/find-the-closest-palindrome\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/find-the-closest-palindrome\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645100151549-Article_321.png\",\"datePublished\":\"2020-06-10T14:07:15+00:00\",\"dateModified\":\"2022-04-06T10:32:25+00:00\",\"description\":\"For given numbers we have to print the nearest anagram to it if two numbers are equidistant and anagram to the given number, print out the smallest. If the number is a palindrome itself\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/find-the-closest-palindrome\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/find-the-closest-palindrome\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/find-the-closest-palindrome\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645100151549-Article_321.png\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645100151549-Article_321.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/find-the-closest-palindrome\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Strings Competitive Programming\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/strings-competitive-programming\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Find the Closest 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":"Strings Interview Programming | Find the Closest Palindrome|","description":"For given numbers we have to print the nearest anagram to it if two numbers are equidistant and anagram to the given number, print out the smallest. If the number is a palindrome itself","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\/find-the-closest-palindrome\/","og_locale":"en_US","og_type":"article","og_title":"Strings Interview Programming | Find the Closest Palindrome|","og_description":"For given numbers we have to print the nearest anagram to it if two numbers are equidistant and anagram to the given number, print out the smallest. If the number is a palindrome itself","og_url":"https:\/\/prepbytes.com\/blog\/find-the-closest-palindrome\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2020-06-10T14:07:15+00:00","article_modified_time":"2022-04-06T10:32:25+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645100151549-Article_321.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\/find-the-closest-palindrome\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/find-the-closest-palindrome\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"Find the Closest Palindrome","datePublished":"2020-06-10T14:07:15+00:00","dateModified":"2022-04-06T10:32:25+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/find-the-closest-palindrome\/"},"wordCount":371,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/find-the-closest-palindrome\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645100151549-Article_321.png","keywords":["competitive coding","hard","Strings"],"articleSection":["Strings Competitive Programming"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/find-the-closest-palindrome\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/find-the-closest-palindrome\/","url":"https:\/\/prepbytes.com\/blog\/find-the-closest-palindrome\/","name":"Strings Interview Programming | Find the Closest Palindrome|","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/find-the-closest-palindrome\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/find-the-closest-palindrome\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645100151549-Article_321.png","datePublished":"2020-06-10T14:07:15+00:00","dateModified":"2022-04-06T10:32:25+00:00","description":"For given numbers we have to print the nearest anagram to it if two numbers are equidistant and anagram to the given number, print out the smallest. If the number is a palindrome itself","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/find-the-closest-palindrome\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/find-the-closest-palindrome\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/find-the-closest-palindrome\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645100151549-Article_321.png","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645100151549-Article_321.png"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/find-the-closest-palindrome\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"Strings Competitive Programming","item":"https:\/\/prepbytes.com\/blog\/category\/strings-competitive-programming\/"},{"@type":"ListItem","position":3,"name":"Find the Closest 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\/762","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=762"}],"version-history":[{"count":13,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/762\/revisions"}],"predecessor-version":[{"id":8442,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/762\/revisions\/8442"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=762"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=762"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=762"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}