• 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 ;)

  • wie wärs wenn du mal selber überlegungen anstellst und wenn du fragen hast meldest dich wieder?

    einfach nur genial: wenn man im wort "Mama" 4 buchstaben ändert, dann hat man auf einmal "Bier"

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

    :verycool:

  • ich bezweifle, dass dieses Programm das wort "Otto" als palindrom erkennt (Gross/kleinschreibung)

    einfach nur genial: wenn man im wort "Mama" 4 buchstaben ändert, dann hat man auf einmal "Bier"

  • Doch tut es. Groß- und Kleinschreibung ist wurscht trotzdessen ich es unter Linux geschrieben habe.
    Problematisch wird es bei mehreren Wörtern, wegen den Leerzeichen.;)

  • Oh ihr habt recht. Das ist ja merkwürdig.Dann hab ich noch ne frage.Hat einer von euch n Lösungsvorschlag? Was genau is da falsch?
    gruß slicker

  • 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!