#include <iostream> #include <cstring> using namespace std; // brute force the entire thing. char* getSubstring(char c[], int starting, int ending){ int length = ending - starting + 1; int temp = length; if(length > strlen(c)){ return "null"; } char* str = new char[length + 1]; char *p1 = str; char *p2 = &c[starting]; while(temp--){ *(p1++) = *(p2++); } *p1 = '\0'; return str; } char* getReverseString(char c[]){ int length = strlen(c); int temp = length; char* str = new char[length]; char* p1 = str; char* p2 = &c[strlen(c) - 1]; while(temp--){ *(p1++) = *(p2--); } *p1 = '\0'; return str; } int main(){ char* str = "jklollolkidding"; cout << getSubstring(str, 2, 6) << endl; char* palindromeString = new char[strlen(str)]; int palindromeLength = 0; for(int i = 0; i < strlen(str); i++){ for(int j = 0; j < strlen(str); j++){ char* subStr = getSubstring(str, i, j); if(strcmp(subStr, "null")){ char* revSubStr = getReverseString(subStr); if(!strcmp(subStr, revSubStr)){ if(strlen(subStr) > palindromeLength){ palindromeString = subStr; palindromeLength = strlen(subStr); } } } } } cout << palindromeString << endl; return 0; }