Longest palindromic substring in a string

 Problem statement:- Program to Find the Longest palindromic substring in a string.

Example:-

              Input: Given

                                 String=madam acc noon wow abab

             Output: Longest palindrome Substring is madam

            Input: Given

                                 String=Java string questions

             Output: No palindrome Found   

Data requirement:-


    Input Data:- str

  Output Data:-
sub_str

  Additional Data:- 
in,out,p,len1,maxInd,max,flag, sub_str1, str_rev

Program in C

Here is the source code of the C Program to Find the Longest palindromic substring in a string.

Code:

#include<stdio.h>
#include<string.h>
main()
{
    int in=0,out=0,p=0,len1,maxInd=0,max=0,flag=0;
    char str[100]={0},sub_str[100][100]={0},sub_str1[100][100]={0},str_rev[100];
    printf("Enter your String:");
    gets(str);

    //splitting Input String into sub string
    while(str[p]!='\0')
    {
        out=0;
        while(str[p]!=' '&&str[p]!='\0')
        {
            sub_str[in][out]=str[p];
            p++;
            out++;
        }
        sub_str[in][out]='\0';
        in++;
        if(str[p]!='\0')
        {
            p++;
        }
    }
    int len=in;
    p=0;
    printf("palindrome Substring are:\n");
    for(in=0;in<len;in++)
    {
        strcpy(str_rev,sub_str[in]);
        if(strcmp(strrev(str_rev),sub_str[in])==0)
        {
            strcpy(sub_str1[p],sub_str[in]);
            printf("%s\n",sub_str1[p]);
            p++;
            flag=1;

        }
    }
    len=p;
    max=strlen(sub_str1[0]);
    //finding max length palindrome string from splitting string length
    if(flag==1)
    {
        for(in=0;in<len;in++)
        {
            len1=strlen(sub_str1[in]);
            if(len1>max)
            {
                max=len1;
                maxInd=in;
            }
        }
        printf("Longest palindrome Substring is %s\n",sub_str1[maxInd]);
    }
    else{
    printf("No palindrome Found\n");
    }
}

Input/Output:
Enter your String:madam acc noon wow abab
palindrome Substring are:
madam
noon
wow
Longest palindrome Substring is madam

Program in C++

Here is the source code of the C++ Program to Find the Longest palindromic substring in a string.

Code:

#include<iostream>
#include <cstring>
using namespace std;
char *str_reverse(char *str)
{
  int i,len=0,n;
  char temp;
  len=strlen(str);
  n=len-1;
  for(i = 0; i <(len/2); i++)
  {
    temp=str[i];
    str[i]=str[n];
    str[n]=temp;
    n--;
  }
  return str;
}
main()
{
    int in=0,out=0,p=0,len1,maxInd=0,max=0,flag=0;
    char sub_str[100][100]={0},sub_str1[100][100]={0},str_rev[100];
    string str;
    cout<<"Enter your String:";
    getline(cin,str);

    //splitting Input String into sub string
    while(str[p]!='\0')
    {
        out=0;
        while(str[p]!=' '&&str[p]!='\0')
        {
            sub_str[in][out]=str[p];
            p++;
            out++;
        }
        sub_str[in][out]='\0';
        in++;
        if(str[p]!='\0')
        {
            p++;
        }
    }
    int len=in;
    p=0;
    cout<<"Palindrome Substring are:\n";
    for(in=0;in<len;in++)
    {
        strcpy(str_rev,sub_str[in]);
        if(strcmp(str_reverse(str_rev),sub_str[in])==0)
        {
            strcpy(sub_str1[p],sub_str[in]);
            cout<<sub_str1[p]<<"\n";
            p++;
            flag=1;
        }
    }
    len=p;
    max=strlen(sub_str1[0]);
    //finding max length palindrome string from splitting string length
    if(flag==1)
    {
        for(in=0;in<len;in++)
        {
            len1=strlen(sub_str1[in]);
            if(len1>max)
            {
                max=len1;
                maxInd=in;
            }
        }
        cout<<"Longest palindrome Substring is "<<sub_str1[maxInd]<<"\n";
    }
    else{
    cout<<"No palindrome Found."<<"\n";
    }
}

Input/Output:
Enter your String:redivider deified civic radar level rotor kayak
Palindrome Substring are:
redivider
deified
civic
radar
level
rotor
kayak
Longest palindrome Substring is redivider

Program in Java

Here is the source code of the Java Program to Find the Longest palindromic substring in a string.

Code:

import java.util.Scanner;
public class LongestPalindromicSubstring {
static String reverse(String str_rev)
{
String rev="";
for(int i=str_rev.length();i>0;--i)
{
rev=rev+(str_rev.charAt(i-1)); 
}
return rev;
}
public static void main(String[] args) {
Scanner cs=new Scanner(System.in);
String str1;
System.out.println("Enter your String:");
str1=cs.nextLine();
str1+=" ";
String[] sub_str=str1.split("\\s");
String[] sub_str1=new String[50];
int in,p=0,flag=0,len1,maxInd=0,max=0;
String str_rev="";
    System.out.print("Palindrome Substring are:\n");
    for(in=0;in<sub_str.length;in++)
    {
    str_rev=sub_str[in];
    if((reverse(str_rev).compareTo(sub_str[in]))==0)
    {
    sub_str1[p]=sub_str[in];
            System.out.print(sub_str1[p]+"\n");
    p++;
    flag=1;
    }
    }     
    int len=p;
   
    //finding max length palindrome string from splitting string length
    if(flag==1)
    {
    max=sub_str1[0].length();
        for(in=0;in<len;in++)
        {
            len1=sub_str1[in].length();
            if(len1>max)
            {
                max=len1;
                maxInd=in;
            }
        }
       System.out.print("Longest palindrome Substring is "+sub_str1[maxInd]+"\n");
    }
    else{
    System.out.print("No palindrome Found\n");
    }
    cs.close();
}
}

Input/Output:
Enter your String:
take racecar rat bat fat refer
Palindrome Substring are:
racecar
refer
Longest palindrome Substring is racecar

Program in Python

Here is the source code of the Python Program to Find the Shortest palindromic substring in a string.

Code:

def reverse(s):
  str = ""
  for i in s:
    str = i + str
  return str
str=input("Enter Your String:")
sub_str=str.split(" ")
sub_str1=[]
p=0
flag=0
maxInd=0
max=0
str_rev=""
print("Palindrome Substring are:")
for inn in range(len(sub_str)):
    str_rev= sub_str[inn]
    if reverse(str_rev).__eq__(sub_str[inn]):
        sub_str1.append(sub_str[inn])
        print(sub_str1[p])
        p +=1
        flag = 1

len2 = p
if flag==1:
    max = len(sub_str1[0])
    for inn in range(0,len2):
        len1 = len(sub_str1[inn])
        if len1 > max:
            max=len1
            maxInd=inn
    print("Longest palindrome Substring is ",sub_str1[maxInd])
else:
    print("No palindrome Found")

Input/Output:
Enter Your String:madam ask refer wait noon
Palindrome Substring are:
madam
refer
noon
Longest palindrome Substring is  madam


Post a Comment

0 Comments