public static void Main()
Program lps = new Program();
string sAnswer = lps.LongestPalindromicSubstring(sInput);
Console.WriteLine("The answer is: " + sAnswer);
public string LongestPalindromicSubstring(string sInput)
int iLongestPalindromicSubstring = 0;
string sLongestPalindromicSubstring = "";
for (int j = sInput.Length; j > 0; j--)
for (int i = 0; i < sInput.Length; i++)
string sInputSubstring = sInput.Substring(i, j - i);
Console.WriteLine(sInputSubstring);
if (CheckPalindromicString(sInputSubstring))
if (iLongestPalindromicSubstring < sInputSubstring.Length)
iLongestPalindromicSubstring = sInputSubstring.Length;
sLongestPalindromicSubstring = sInputSubstring;
return (sLongestPalindromicSubstring);
private bool CheckPalindromicString(string sPalindromicString)
string sReverseString = "";
char[] caPalindromicString = sPalindromicString.ToCharArray();
char[] caReverseString = new char[sPalindromicString.Length];
for (int i = 0; i < caPalindromicString.Length; i++)
caReverseString[i] = caPalindromicString[(caPalindromicString.Length - 1) - i];
sReverseString = new string(caReverseString);
bool bIsPalindromicString = sReverseString == sPalindromicString ? true : false;
return bIsPalindromicString;