T
TLS
Gast
Hallo alle zusammen,
ich arbeite gerade an einer Methode, die eine gegebene long auf ein Palindrom prüfen soll.
Nun habe ich bereits sehr viele Methoden bei google gefunden, die mir allerdings alle zu langsam sind und die Laufzeit meines Programms um 90% verlängern.
Ich hätte gerne eine schnelle überprüfung, wie es bereits in Scala möglich war:
Ich habe bereits mehrere Möglichkkeiten in Java probiert, z.B.
Keine der beiden Lösungen war auch nur annähernd so schnell wie die Scala referenz.
Einige andere Vorschläge poste ich hier jetzt nicht, da die Laufzeit mehr als miserabel war.
Könnt ihr mir bitte helfen, die Laufzeit zu optimieren?
Grüße,
TLS
ich arbeite gerade an einer Methode, die eine gegebene long auf ein Palindrom prüfen soll.
Nun habe ich bereits sehr viele Methoden bei google gefunden, die mir allerdings alle zu langsam sind und die Laufzeit meines Programms um 90% verlängern.
Ich hätte gerne eine schnelle überprüfung, wie es bereits in Scala möglich war:
Code:
final def isPalindrome =
if (wrapped < 10L) true
else if (wrapped % 10L == 0L) false
else check(wrapped, 0L)
Ich habe bereits mehrere Möglichkkeiten in Java probiert, z.B.
Code:
String str = String.valueOf(pal);
StringBuffer buf = new StringBuffer(str);
return str.equals(buf.reverse().toString());
Code:
long palTmp = pal;
long palRev = 0;
while(palTmp > 0)
{
long temp = palTmp % 10;
palRev = palRev * 10 + temp;
palTmp = palTmp/10;
}
return pal == palRev;
Keine der beiden Lösungen war auch nur annähernd so schnell wie die Scala referenz.
Einige andere Vorschläge poste ich hier jetzt nicht, da die Laufzeit mehr als miserabel war.
Könnt ihr mir bitte helfen, die Laufzeit zu optimieren?
Grüße,
TLS