001 package de.hska.java.aufgaben.rekursion;
002
003 /**
004 * Mit Palindrom kann ein char-Feld daraufhin überprüft werden,
005 * ob es ein Palindrom ist oder nicht.
006 * Ein Palindrom ist ein Wort, das Vorwärts und Rückwärts gelesen
007 * gleich ist. Zum Beispiel "abba", "lagerregal".
008 * <p>
009 * <a href="http://www.home.hs-karlsruhe.de/~pach0003/informatik_1/aufgaben/rekursion.html#palindrom">Zurück zum Aufgabentext</a>
010 * </p>
011 *
012 * @author Christian Pape
013 *
014 */
015 public class Palindrom {
016
017 /**
018 * Gibt genau dann <code>true</code> zurück, wenn
019 * <code>wort</code> ein Palindrom ist.
020 * Gross-/Kleinschreibung wird dabei nicht unterschieden.
021 */
022 public boolean isPalindrom(char [] wort) {
023 return isPalindrom(wort, 0, wort.length - 1);
024 }
025
026 /**
027 * Rekursive Implementierung für die Palindromüberprüfung.
028 */
029 private boolean isPalindrom(char[] wort, int start, int ende) {
030 if (start >= ende) {
031 return true;
032 } else {
033 return wort[start] == wort[ende]
034 && isPalindrom(wort, start + 1, ende - 1);
035 }
036 }
037 }