@Nipun: The soln is correct. It is O(n^3) and no extra memory is required. One soln I can think of is: Find longest common substring in the given string and its reverse. It will be a palindrome. This will be O(n^2) but uses extra space.
On Sat, Aug 21, 2010 at 4:18 PM, nipun batra <[email protected]>wrote: > An O(n^3) solution.Wanna know if it's possible to optimize without using > trees. > > #include<iostream> > #include<string.h> > using namespace std; > char* substring(char*s,int start,int finish) > { > int ctr=0; > char str[1000]; > while(start<=finish) > { > str[ctr]=s[start]; > start+=1; > ctr+=1; > } > str[ctr]='\0'; > return str; > } > bool isPalindrome(char *s) > { > int size=strlen(s); > int j=size-1; > int i=0; > while((s[i]==s[j])&&(i<j)) > { > i+=1; > j-=1; > } > if (i>=j) > return true; > else > return false; > } > int main() > { > > int i,j; > char s[100]; > cin>>s; > > int size=strlen(s); > int tempMax=size-1; > while(tempMax>1) > { > for(i=0;i+tempMax<size;i++) > { > if(isPalindrome(substring(s,i,i+tempMax)))//O(n) > { > puts(substring(s,i,i+tempMax)); > cout<<" of size "<<tempMax<<"\n"; > break; > } > } > tempMax-=1; > } > > > return 0; > } > > > > > On Sat, Aug 21, 2010 at 12:12 PM, Chonku <[email protected]> wrote: > >> I definitely meant a suffix Tree and not a trie. Apologize for that. :) >> >> On Fri, Aug 20, 2010 at 8:47 PM, Nikhil Jindal <[email protected]>wrote: >> >>> @chonku >>> As i understand, a trie is used when we have a lot of strings (such as a >>> dictionary). >>> Here we just have a single string. The resultant trie will be: >>> >>> a >>> \ >>> b >>> \ >>> c >>> \ >>> l >>> \ >>> e >>> \ >>> v >>> \ >>> e >>> \ >>> l >>> \ >>> a >>> \ >>> b >>> \ >>> c >>> >>> We get a similar trie for the reverse string. >>> >>> So why are you using a trie here? I cant see any advantage of it here. >>> >>> On Fri, Aug 20, 2010 at 8:36 AM, Chonku <[email protected]> wrote: >>> >>>> Can we use a trie here. >>>> Make first pass from left to right and construct the trie. >>>> Make second pass from right to left and look for the trie branch with >>>> maximum nodes that match the characters. >>>> >>>> On Thu, Aug 19, 2010 at 7:46 PM, Nikhil Jindal < >>>> [email protected]> wrote: >>>> >>>>> Hi All, >>>>> >>>>> Givan a string, you have to find the longest palindromic substring. >>>>> For ex: Longest Palindromic substring for abclevelabc is level. >>>>> >>>>> What is the most optimised solution possible? >>>>> >>>>> Please access the attached hyperlink for an important electronic >>>>> communications disclaimer: >>>>> http://dce.edu/web/Sections/Standalone/Email_Disclaimer.php >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> You received this message because you are subscribed to the Google Groups >>>>> "Algorithm Geeks" group. >>>>> >>>>> To post to this group, send email to [email protected]. >>>>> >>>>> To unsubscribe from this group, send email to >>>>> [email protected] >>>>> <algogeeks%[email protected]>. >>>>> >>>>> >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/algogeeks?hl=en. >>>>> >>>>> >>>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Algorithm Geeks" group. >>>> To post to this group, send email to [email protected]. >>>> To unsubscribe from this group, send email to >>>> [email protected]<algogeeks%[email protected]> >>>> . >>>> For more options, visit this group at >>>> http://groups.google.com/group/algogeeks?hl=en. >>>> >>> >>> Please access the attached hyperlink for an important electronic >>> communications disclaimer: >>> http://dce.edu/web/Sections/Standalone/Email_Disclaimer.php >>> >>> >>> >>> -- >>> >>> You received this message because you are subscribed to the Google Groups >>> "Algorithm Geeks" group. >>> >>> To post to this group, send email to [email protected]. >>> >>> To unsubscribe from this group, send email to >>> [email protected] >>> <algogeeks%[email protected]>. >>> >>> >>> For more options, visit this group at >>> http://groups.google.com/group/algogeeks?hl=en. >>> >>> >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "Algorithm Geeks" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]<algogeeks%[email protected]> >> . >> For more options, visit this group at >> http://groups.google.com/group/algogeeks?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Algorithm Geeks" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<algogeeks%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/algogeeks?hl=en. > Please access the attached hyperlink for an important electronic communications disclaimer: http://dce.edu/web/Sections/Standalone/Email_Disclaimer.php -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.
