/*
Datei............: Aufg1116.java
Projekt..........: Einführung in die Java-Programmierung
Erstellt.........: 21.11.97, Guido Krüger
Geändert.........: --
Aufgabe..........: Musterlösung zu Aufgabe 11.16
Kommentare.......:

Die Palindromerkennung kann man sehr schön rekursiv lösen, denn es
gilt:

Ein Wort w := [c1 c2 c3 ... cn] ist genau dann ein Palindrom,
wenn:

- n kleiner gleich 1 ist ODER

- c1 gleich cn ist UND [c2 c3 c4 ... cn-1] ebenfalls ein Palindrom ist.

Alle anderen Worte sind keine Palindrome. Genau diese rekursive
Definition wird in der nachfolgenden Methode isPalindrome() isomorph
umgesetzt.
*/
import java.util.*;

public class Aufg1116
{
  public static void main(String args[])
  {
	String s[] = {"Esel", "neben", "Ebbe", "Renner", "Panama", "Rotor"};
	for (int i = 0; i < s.length; ++i) {
	  System.out.println(
        "isPalindrome(" + s[i] + ") = " + isPalindrome(s[i])
      );
	}
  }

  public static boolean isPalindrome(String s)
  {
	s = s.toUpperCase();
	int len = s.length();
	if (len > 1) {
	  return s.charAt(0) == s.charAt(len - 1) &&
             isPalindrome(s.substring(1, len - 1));
	}
	return true;
  }
}


