Programm-Problem "Überprüfung von Wörtern"



  • Hallo,

    mein Ziel ist es ein Programm zu schreiben, dass nach Eingabe bestimmter Ziffern mehrer Wörter überprüft, ob Sie mit diesen Buchstaben lösbar sind. Buchstaben dürfen nicht doppelt verwendet werden.

    Beispiel
    Wortliste: der,die,das,nie,ein

    Eingabe: nied
    Ausgabe: die, nie, ein

    Vielleicht kann mir jemand einen guten Tipp geben, ich habe mir zwar eine Möglichkeit überlegt, die allerdings so aufwendig ist, dass die Realisierung "unmöglich" ist.^^

    Meine Erfahrung in C++ hält sich noch in Grenzen. Aber schonmal danke für den richtigen Denkanstoss.

    MfG
    Sammm



  • mache Dir ein Array von Strings

    Woerter = new string[10];
    liess deine Woerter alle ein.
    loop(++i){
    cin << Woerter[i];
    }

    und dann dein Referenzwort.

    jetzt fängst Du mit dem ersten Buchstaben deines Referenzwortes an und durchsuchst dein Array.
    Schmeist jedes Wort raus in dem der Buchstabe garnicht vorkommt und aus den anderen entfernst Du den Buchstaben.

    irgendwie musst Du dir noch merken welches die Überlebenden sind und feststellen wann Du fertig bist.

    Viel Erfolg



  • Du kannst auch mit next_permutation() alle Kombinationsmöglichkeiten des Eingabewortes durchlaufen und jeweils überprüfen, ob der Wortanfang in der Menge der Testwörter vorkommt.

    @Cris: Dein Verfahren würde aber letztendlich alle Wörter streichen. Du müsstest stattdessen etwa so etwas machen:

    vector<string> Wortliste;
    //Wortliste einlesen
    vector<string> Wortliste2=Wortliste;
    string Eingabe=Input();
    
    for i=0 to Eingabe.length()-1
      for p=0 to Wortliste2.size()-1
        if Wortliste2[p] enthält Eingabe[i] then Lösche Eingabe[i] aus Wortliste2[p]
      next
    next
    
    for p=0 to Wortliste2.size()-1
      if Wortliste2[p]="" then Print(Wortliste[p])
    next
    


  • Hallo,

    danke für die Informationen, aber ich glaube mein Wissen reicht wohl noch nicht aus um solch ein Programm zu schreiben. 😕

    Gruss,
    Sammm


Anmelden zum Antworten