Die Aufgabe
Aufgabe 10.3
Ein Wort wird Palindrom genannt, wenn es vom Anfang und vom Ende her gelesen identisch ist. Beispiele sind Anna und Lagerregal. Ein nichtleeres Wort ist also offensichtlich ein Palindrom, wenn der erste und der letzte Buchstabe identisch sind und der verbleibende Mittelteil wieder ein Palindrom ist. Groß-/Kleinschreibung wird dabei nicht unterschieden.
Auf der Basis dieser Beschreibung soll ein Java-Programm implementiert werden, welches die Eigenschaft „ist Palindrom“ mit Hilfe der Rekursion entscheidet. Konkret soll also eine rekursive Java-Methode der Form boolean isPalindrom (String text) implementiert werden, welche in der main-Methode getestet werden kann. In der main-Methode sollen fortlaufend, d. h. in einer Endlosschleife, beliebige Wörter von der Tastatur gelesen und jeweils eine entsprechende Meldung zur Eigenschaft „ist Palindrom“ auf dem Bildschirm ausgegeben werden. Verwenden Sie die Vorlage A10_3.java.
Die Vorlage A10_3.java:
class A10_3 { static boolean isPalindrom (String text) { // Geben Sie den fehlenden Code der Methode hier ein! } public static void main (String[ ] args) { while (true) { // Aufforderung und Eingabe eines Worts // Leeres Wort eingegeben? // Umwandlung in Kleinschreibung // Prüfung auf Palindrom und Ausgabe } }}Gesucht sind zwei Dinge. Erstens die Methode isPalindrom: Sie bekommt einen Text und gibt true (wahr) zurück, wenn er ein Palindrom ist, sonst false (falsch). Zweitens ein Hauptprogramm, das immer wieder ein Wort einliest und das Ergebnis meldet.
Die Aufgabe gibt den Weg schon vor: Erster und letzter Buchstabe müssen gleich sein, und der Mittelteil muss wieder ein Palindrom sein. Großbuchstaben zählen wie Kleinbuchstaben, „Anna“ ist also ein Palindrom, obwohl A und a verschieden aussehen.
- Die Idee: von außen nach innen.
- Der Basisfall: 0 oder 1 Buchstabe.
- Ersten und letzten Buchstaben vergleichen.
- Sich selbst für den Mittelteil aufrufen.
- Die ganze Aufrufkette für „Lagerregal“.
- Hauptprogramm: Endlosschleife, Eingabe, Abbruch.
- Alles in Kleinbuchstaben umwandeln.
- Prüfen, melden, testen.