Sagen Sie, ich habe ein Palindrom s
und ich werde Zeichen am Ende von s
zum Spaß anhängen. Aber ich will aufhören, sobald es kein Palindrom mehr ist.Füge neue Zeichen zu einem Palindrome hinzu. Effiziente oder dynamische Möglichkeit zu überprüfen, ob die neue Zeichenfolge noch ein Palindrome ist?
Jetzt bin ich faul, also will ich nicht erneut scannen s
zu bestimmen, ob es ein Palindrom jedes Mal ist, wenn ein neues Zeichen an s
angehängt wird. Ich frage mich, ob es einen schnelleren Weg zur Formularisierung/Überprüfung gibt, ob das neue s
ein Palindrom ist, indem ich die Tatsache nutze, dass s
bereits ein Palindrom ist. Ich habe das Gefühl, dass es einen Weg gibt, diese Informationen zu nutzen, aber ich kann meinen Kopf nicht umschließen.
Ich bin auf meinem Denkprozess fest. Bis jetzt versuche ich, Dinge in Fälle zu zerlegen.
die palindrome s
kann in zwei Form hat: (|__M__|
ist ein Teilabschnitt von s
und |__-M__|
ist die Umkehrung des |__M__|
)
wenn die Länge ungerade ist:
|__-M__|X|__M__|
wenn die Länge ist gerade:
|__-M__||__M__|
wenn ich jetzt anhängen das neue Zeichen c
ist es eine effiziente Art und Weise
|__-M__|X|__M__|c
< ---- ein Palindrom zu überprüfen?
|__-M__||__M__|c
< ---- ein Palindrom?
Können Sie einige Beispiele von Palindromen (von gleicher Länge, ungerader Länge oder beides) angeben, die dieses Kriterium erfüllen würden? Aus der Spitze meines Kopfes kann ich nur an Palindrome eines Zeichens denken und dieses gleiche Zeichen anhängen, z. aaa -> aaaa – Keeler
@Keeler jetzt du fragst ich denke ich dachte über das Problem ..... Ich denke das einzige Mal das Palindrom bleibt ein Palindrom ist wenn alle Charaktere gleich sind und wir fügen die gleichen Zeichen hinzu. (plus die leere String-Hülle) ..... richtig? Mann, jetzt fühle ich mich töricht ...... warum verliere ich Schlaf für eine einfache Frage wie diese .... seufz –