Ich brauche einen Algorithmus, der mit der schnellstmöglichen Ausführungszeit überprüft, ob eine Zeichenfolge ein Palindrom ist (die Zeichenfolge kann ein Satz mit Groß- oder Kleinbuchstaben, Leerzeichen usw. sein). Das alles in Java. Ich habe eine Probe bekommen:
Code: Select all
bool isPalindrome(string s) {
int n = s.length();
s = s.toLowerCase();
for (int i = 0; i < (n / 2) + 1; ++i) {
if (s.charAt(i) != s.charAt(n - i - 1)) {
return false;
}
}
return true;
}
Ich habe die Zeichenfolge in Kleinbuchstaben mit .ToLowerCase () -Funktion transformiert, aber ich weiß nicht, wie stark es sich auf die Ausführungszeit auswirkt.
Und ich weiß auch nicht, wie ich das Problem mit Interpunktion und Räumen zwischen Wörtern effektiv lösen kann. < /p>