Sunday, April 15, 2012

Program 21ST VERSION 1 in C++

PROBLEM STATEMENT :

Find the longest palindrome in a given string

SOLUTION :

//solves in o(n^3)

#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