Palindrom-Eigenschaft

Definition in Wikipediahttps://de.wikipedia.org/wiki/Palindrom

„Ein Palindrom (von griechisch Παλίνδρομος palíndromos ‚rückwärts laufend‘) ist eine Zeichenkette, die von vorn und von hinten gelesen dasselbe ergibt.“

Aufgabe:

Man überprüfe, ob eine natürliche Zahl ein Palindrom ist.

Problemanalyse:

  1. Zahl in String (Zeichenkette) verwandeln.
  2. Zeichenkette in Liste umwandeln.
  3. Die Liste in der Mitte teilen (Unterschied ob die Länge gerade oder ungerade ist).
  4. Die Reihenfolge der rechten Teilliste umdrehen.
  5. Wenn die linke und die reverse rechte Teilliste gleich sind, liegt ein Palindrom vor.

Maxima-Online:

http://maxima-online.org/?inc=r1519764495

Beispiele:

palindromeigenschaft

Code:

1/* Eingabe der Zahl (sinnvollerweise ab 3 Stellen) */;
z:32113;
2/* Verarbeitung */;
z:charlist(string(z));
n:length(z);
if mod(n,2)=0 then block(l1:makelist(z[i],i,1,n/2), l2:makelist(z[i],i,n/2+1,n)) else block(l1:makelist(z[i],i,1,floor(n/2)+1),
l2:makelist(z[i],i,floor(n/2)+1,n));
3/* Ausgabe */;
display(l1,l2);
if l1=reverse(l2) then "Es liegt ein Palindrom vor." else "Es liegt KEIN Palindrom vor.";

Über Johnny Weilharter

Direktor i. R. der Bundeshandelsakademie und Bundeshandelssschule in Tamsweg, Österreich
Dieser Beitrag wurde unter BYOD, Creative Commons, Listenverarbeitung veröffentlicht. Setze ein Lesezeichen auf den Permalink.