Sunday, April 15, 2012

Program 21ST in C++ VERSION 2

PROBLEM STATEMENT :

Find the longest palindrome in a given string

SOLUTION :

//solves in o(n^2)

#include <cstdio>
#include <iostream.h>
#include <string.h>

using namespace std;

string find(string s2,int i, int j)
{
int l=i;
int r=j;
int length=s2.length();

while(i>=0 && j<length && s2[i] == s2[j])
{
i--;
j++;

}

return s2.substr(i+1,j-i-1);

}
void palin(string s)
{

int l=s.length();

if(s.length() == 0)
{
cout<<" ";
}

string longest = s.substr(0,1);

for(int i=0; i
{
string s1=find(s,i,i);
if(s1.length() > longest.length())
{
longest=s1;
}

s1=find(s,i,i+1);
if(s1.length() > longest.length())
{
longest=s1;
}
}

cout<<"LONGEST PALINDROME IS : "<<longest;
}

int main()
{

string s;
cout<<"Enter a string : ";
getline(cin,s,'\n');
palin(s);

}

No comments:

Post a Comment