Find the longest palindrome in a given string
SOLUTION :
#include <cstdio>
#include <iostream.h>
#include <string.h>
using namespace std;
string strrev(string s)
{
int n=s.length()/2;
char temp;
for(int i=0; i<n; i++)
{
temp = s[i];
s[i]=s[s.length()-i-1];
s[s.length()-i-1]=temp;
}
cout<<" "<<s;
return s;
}
string longpalin(string s1)
{
int pos=0;
int len=0;
if(s1.length() == 0)
{
return "";
}
for( int i=0; i<s1.length(); i++)
{
for( int j=i+1; j<=s1.length()-i ;j++)
{
cout<<"\n\nstring : "<<s1.substr(i,j);
if(s1.substr(i,j) == (strrev(s1.substr(i,j))) && j>len)
{
pos=i;
len=j;
}
}
}
return s1.substr(pos,len);
}
int main()
{
string s;
cout<<"\n\nEnter a string : ";
getline(cin,s,'\n');
cout<<"\n\nLongest Palindrome is : "<<longpalin(s);
}
No comments:
Post a Comment