Palindrom

  • Hallo,
    ich habe mal wieder ne nette Aufgabe bekommen.
    Vielleicht hat ja wer n schönen Lösungsansatz.
    Aufgabe:

    Schreiben sie ein Programm, das überprüft, ob ein String ein Palindrom ist oder nicht. Palindrome sind Wörter die von vorne und hinten den gleichen Sinn ergeben.
    Beispiele:

    • Otto
    • Ein Neger mit Gazelle zagt im Regen nie


    Übergeben sie den String über die Tastatur an das Programm und erzeugen sie eine Ausgabe, die den String sowohl vorwärts als auch rückwärts ausgibt und abschließend das Ergebnis mitteilt.

    Ich bin für alle Vorschläge sehr dankbar ;)

  • Hab leider keine mehr.Lösung sieht so aus:

    :verycool:

  • So vielleicht!?


    Jup deswegen ging das auch mit Otto. Das geht jetzt nämlich nicht mehr. Das ist aber für meine Aufgabe net so schlimm.
    So gibt er wenigstens das richtige Ergebnis aus!

  • schmeiss doch einfach whitespace aus dem string und ersetze klein in grossbuchstaben, bevor du vergleichst:

    Code
    cin>>palindrom;
    ...
    [B]palindrom = removeWhitespace( toLowerCase(palindrom) );[/B]
    ...

    und jetzt implementiere noch removeWhitespace(string) und toLowerCase(string) und du bist fertig.

  • Irgendwie kann man den komischen Stream dazu bringen, Spaces nicht zu fressen


    Cool. Aber ich wuerde das vermutlich vermeiden, um das UI von der Logik zu trennen (nicht das das bei den paar Zeilen wirklich was bringen wuerde). Also wenn ich die Aufgabe fuer mich loesen wollte, dann haette ich vermutlich mit einer Funktion isPalindrom() angefangen und das ui dann spaeter gebaut.

    (Pseudocode)

    Code
    def isPalindrom(str): 
      str = removeWhiteSpace(lowerCase(str))
      return str == reverse(str)
    
    
    def main():
      input = readFromCLI()
      if(isPalindrom(input)):
        ...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!