Достаточно проходить до половины строки, сравнивая начальные символы с конечными и завершая проверку при первой неудаче:
public void checkPalindrome(string input)
{
string result = isPolindrome(input) ? "Yes, it's a Palindrome" : "No, it's not a Palindrome";
Console.WriteLine(result);
}
private bool isPolindrome(string input)
{
int halfLength = input.Length / 2;
for (int i = 0; i < halfLength; i++)
{
if (input[i] != input[input.Length - i - 1])
return false;
}
return true;
}
так получим наилучшую возможную сложность O(n / 2) и Ω(1)