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,einEingabe: nied
Ausgabe: die, nie, einVielleicht 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