Palindrome How it coded it

    0
    28
    Spread the love
    • 1
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
      1
      Share


    In this post I am going to publish an algorithm and corresponding code to implement a palindrome program.
    I have done this coding in HTML and java script. But if you understand the logic, you can easily implement in other language.
    Well what can be an example of a palindrome: AABAA ,XXXX

    logic to determine a word or a string as a palindrome is to determine the middle of the string and check the character of the first position with last position. if all the combination  matches till the middle of the string,We can say this is a valid palindrome.

    Say
    Case-1
    AABAA—The length of the string is 5.Hence the middle is 5/2=2.5. 2.5 is not a valid position of a string.
    Hence we will accept 3 is the middle position.
    Case-2
    XXXX—The length of the string is 4.Hence the middle is 4/2=2.

    So after taking the input we need to determine if the string will be treated as Case-1 or Case-2.

    Code—

              function palindrome()
                   {
                  //you can define your own string here.
                   a=document.getElementById(“text”);
                   var b=a.value;
                   if(b.length%2) {
                  // This is for your reference only
                  document.getElementById(“test”).innerHTML=”odd”;
                  doforodd(b,b.length);
                   }
                  else
                  document.getElementById(“test”).innerHTML=”even”;
                  doforeven(b,b.length);
                 }


    in my code the odd length is handled by  doforodd(b,b.length)  and the even is handled by doforeven(b,b.length)


    Now how this even and odd  case is handled??


    Evencase

    function doforeven(b,length)
                {
                        mid=(length/ 2);
                        i=0;
                        j=length-1;
                        for (i=0;i<mid;i++){
                        if(b.charAt(i)==b.charAt(j))
                        {
                        doprint(“Y”);
                         }
                        else {
                        doprint(“N”);
                        }
                        j–;
                        }
                        Checkpal();
                 }
                        


    Here is the function for working with odd cases

    function doforodd(b,length) {
                    //find middle
                    mid=((length-1)/ 2)+1
                    mid”+mid;
                    i=0;
                    j=length-1;
                    for (i=0;i<mid;i++){
                    if(b.charAt(i)==b.charAt(j))
                    {
                      doprint(“Y”);
                    }
                    else {
                        doprint(“N”);
                    }
                    j–;
                    }
                Checkpal();
                
                }

    doprint(“Y”)  function is only keeping track of the character matching. If the characters are matching it is going to print Yes or else it will print Not

    function doprint(Var) {
                 //you can create a string also and append the value    say output       
     document.getElementById(“test”).innerHTML=document.getElementById(“test”).innerHTML+Var;
                        if(Var==”Y”)
                        {
                            document.getElementById(“test”).innerHTML=document.getElementById(“test”).innerHTML+”Yes”;
                        }
                        else
                            document.getElementById(“test”).innerHTML=document.getElementById(“test”).innerHTML+”Not”;
                        }


    Now Based on the string generated we need to determine if the given string is a palindrome or not.
    How??
    if the string (output) is having all yes then it is a true palindrome or else if you get atleast one “NOT” then it is not a valid palindrome.

    function Checkpal() {
                    if (document.getElementById(“test”).innerHTML.indexOf(“Not”)>=0) {
                    
                        document.getElementById(“test”).innerHTML=”Not a palindrom”;
                    }
                    else
                    document.getElementById(“test”).innerHTML=”Palindrom”;
                }


    You can use output.indexOf(“NOT”) also for your programming.


    This program will give you if a given string is a palindrome or not.


    If you want to test in webpage please copy paste the below written code in notepad and save it as “xyz.html”

    <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
    <html>
    <head>
    <script language=”javaScript”>
                function palindrome()
                {
                a=document.getElementById(“text”);
                var b=a.value;
                if(b.length%2) {
                document.getElementById(“test”).innerHTML=”odd”;
                doforodd(b,b.length);
                  }
                else
                document.getElementById(“test”).innerHTML=”even”;
                doforeven(b,b.length);
                }
                    function doforeven(b,length) {
                        mid=(length/ 2);
                       // document.getElementById(“test”).innerHTML=document.getElementById(“test”).innerHTML+”–mid”+mid;
                        i=0;
                        j=length-1;
                        for (i=0;i<mid;i++){
                        if(b.charAt(i)==b.charAt(j))
                        {
                        doprint(“Y”);
                        //document.getElementById(“test”).innerHTML=document.getElementById(“test”).innerHTML+”<br>,i=”+b.charAt(i)+”,j=”+b.charAt(j);
                        }
                        else {
                        doprint(“N”);
                        }
                        j–;
                        }
                        Checkpal();
                        }
                        
                function Checkpal() {
                    if (document.getElementById(“test”).innerHTML.indexOf(“Not”)>=0) {
                    
                        document.getElementById(“test”).innerHTML=”Not a palindrom”;
                    }
                    else
                    document.getElementById(“test”).innerHTML=”Palindrom”;
                }
        
                function doprint(Var1) {
                document.getElementById(“test”).innerHTML=document.getElementById(“test”).innerHTML+Var1;
                        if(Var1==”Y”)
                        {
                            document.getElementById(“test”).innerHTML=document.getElementById(“test”).innerHTML+”Yes”;
                        }
                        else
                            document.getElementById(“test”).innerHTML=document.getElementById(“test”).innerHTML+”Not”;
                        }
                function doforodd(b,length) {
                    //find middle
                    mid=((length-1)/ 2)+1
                    //document.getElementById(“test”).innerHTML=document.getElementById(“test”).innerHTML+”–mid”+mid;
                    i=0;
                    j=length-1;
                    for (i=0;i<mid;i++){
                    if(b.charAt(i)==b.charAt(j))
                    {
                    
                   doprint(“Y”);
                    }
                    else {
                        doprint(“N”);
                    }
                    j–;
                    }
                Checkpal();
                
                }
    </script>
    </head>
    <body>
    <form>
    <input type=”text” id=”text” name=”tex”>
    <input type=”button” value=”Click me” onclick=”palindrome()”>
    <span id=”test”></span>
    </form>
    </body>
    </html>

    Don't miss out!
    Subscribe To Newsletter

    Receive top technical news, lesson ideas, travel tips and more!

    Invalid email address
    Give it a try. You can unsubscribe at any time.

    Spread the love
    • 1
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
      1
      Share

    LEAVE A REPLY

    Please enter your comment!
    Please enter your name here