Direkt zum Inhalt
  1. Startseite
  2. Quests
  3. #352

Aufgabe mit Lösung Palindrome erkennen - Algorithmus mit Stacks

Schreibe einen Algorithmus, der als Input einen Array A bekommt und überprüft, ob es sich um ein Palindrom handelt. Jedes Element des Arrays A ist ein einzelnes Zeichen (char), wie z.B. A = ["a", "b", "c"]. Nutze dazu eine beliebige Programmiersprache oder Pseudocode und Stapelspeicher-Datenstruktur bestehend nur aus einem Stack.

Lösungstipps

Ein Palindrom ist ein Wort, welches sowohl vorwärts als auch rückwärts gelesen gleich ist. Beispiele für Palindrome als Arrays: A = ["r", "e", "n", "t", "n", "e", "r"]A = ["o", "t", "t", "o"]

Lösung

Lösung anzeigen

palindromCheck(Array A):
  Stack s = new Stack() 
  int n = 0
  n = A.size()
 
  for i in A do
    s.push(i) 

  for i = 0 to n do
    if A[i] == top() then
      s.pop() 
 
 
  if s.isEmpty() then
    return "Es ist ein Palindrom!"
  else 
return "Es ist kein Palindrom!"

An die Funktion "palindromCheck" wird ein Array A mit einzelnen Zeichen übergeben. In dieser Funktion wird zuerst ein Stack s und ein Integer n initialisiert. Dabei wird n die Länge des Arrays A zugewiesen.

In der ersten for-Schleife werden alle Zeichen des Arrays auf den Stack gelegt. Das nullte Zeichen im Array wird somit zum untersten Objekt auf dem Stack.

In der zweiten for-Schleife, die die Länge des Arrays (n-mal) durchläuft, wird überprüft, ob das oberste Element auf dem Stack dem nullten, ersten, zweiten usw. Zeichen des Arrays entspricht. Wenn das oberste Zeichen auf dem Stack mit dem entsprechenden Zeichen im Array übereinstimmt, wird das oberste Zeichen auf dem Stack entfernt.

Wenn am Ende der Schleife, keine Zeichen auf dem Stack übrig geblieben sind, der Stack also leer ist, muss das Array ein Palindrom sein; ansonsten ist es kein Palindrom.

Details zum Inhalt
  • Die Quest wurde hinzugefügt von FufaeV am .
  • Die Quest wurde aktualisiert von FufaeV am .

Feedback geben

Hey! Ich bin Alexander FufaeV, der Physiker und Autor hier. Es ist mir wichtig, dass du stets sehr zufrieden bist, wenn du hierher kommst, um deine Fragen und Probleme zu klären. Da ich aber keine Glaskugel besitze, bin ich auf dein Feedback angewiesen. So kann ich Fehler beseitigen und diesen Inhalt verbessern, damit auch andere Besucher von deinem Feedback profitieren können.

Wie zufrieden bist Du?