Hallo erstmal!!
Und zwar ich hab da ein Riesen problem ich muss einen code schrieben der vorlgendes erfüllen muss
und zwar char array so sortieren ['x','a','b','b','c','b','c','x','y'] --> "bcxay" also quasie buchstaben die am häufigsten vorkommen zuerst wenn 2 buchstaben gleichermassen vorkommen dann nach alphabet
und das als string ausgeben.
Bis jetzt weiß ich nur theoretisch die lösung aber wie ich es umsetze kein plan.
Pseudocode:Also folgendes: Ich hab zuerst ein Array erstellt, des die Anzahl der lowercase buchstaben enthält, dabei steht der 0te Eintrag für 'a', der erste für 'b' usw. Wenn der Input so aussehen würde: {'a', 'a', 'b', 'c', 'b'} dann wäre im Array: {2, 2, 1, 0, 0, 0, ... (für jeden Letter)}, also 2 a, 2 b und 1 c, ansonsten nichts. Wenn das fertig ist gehe ich jede Mögliche Zeichenlänge durch, heißt im Klartext: Wenn das Eingangsarray 10 Einträge hat, habe ich eine Iterationsvariable, die von 10 runter zählt. Dadurch bekomme ich jede mögliche "Auftrittslänge", ich überprüfe immer ob es in dem vorher erstellten Array Zeichen gibt, die jene Länge haben (Ich habe dazu eine etwas abgewandelte Version vom ersten Beispiel verwendet, also dieses GetIndices) - Ich erstelle ein neues Character (char) Array, und füge jedes gefundene Zeichen an, unabhängig von der alphabetischen Reihenfolge, sobald das geschehen ist wird das Array nämlich sortiert. Ich verwende dazu Arrays.Sort(char[] input) - Ihr könnt aber auch die Methode aus der Vorlesung implementieren oder eine eigene schreiben, diese sortiert die Zeichen alphabetisch. Wenn das geschehen ist werden sie an einen Output string angehängt und sobald alle Möglichen Zeichenkettenlängen durch sind, terminiert das Ganze und der String kommt zurück. Ich habe euch noch ein bisschen was an Pseudo Code geschrieben, um das verständlicher zu machen:
toFrequencySorted:
"Erstelle Output String Variable und fülle sie mit einem leeren String"
und vlt hilft das:
"Erstelle Output String variable, fülle sie mit leerem String"
"Erstelle ein INT array mit 26 Einträgen für jeden Buchstaben seine Länge"
"Solange bis eine Iterationsvariable, die mit der Input länge initialisiert wird > 0 ist mache:"
Suche alle Vorkommenden Einträge mit Länge "ITERATIONSVARIABLE" im vorher erstellten INT Array
Erstelle ein neues Char Array, mit Länge der gefundenen Einträge und fülle es mit den zugehörigen Zeichen
Sortiere das Array Alphabetisch
Füge das Array an den Output string an
gib den output zurück
Und zwar ich hab da ein Riesen problem ich muss einen code schrieben der vorlgendes erfüllen muss
und zwar char array so sortieren ['x','a','b','b','c','b','c','x','y'] --> "bcxay" also quasie buchstaben die am häufigsten vorkommen zuerst wenn 2 buchstaben gleichermassen vorkommen dann nach alphabet
und das als string ausgeben.
Bis jetzt weiß ich nur theoretisch die lösung aber wie ich es umsetze kein plan.
Pseudocode:Also folgendes: Ich hab zuerst ein Array erstellt, des die Anzahl der lowercase buchstaben enthält, dabei steht der 0te Eintrag für 'a', der erste für 'b' usw. Wenn der Input so aussehen würde: {'a', 'a', 'b', 'c', 'b'} dann wäre im Array: {2, 2, 1, 0, 0, 0, ... (für jeden Letter)}, also 2 a, 2 b und 1 c, ansonsten nichts. Wenn das fertig ist gehe ich jede Mögliche Zeichenlänge durch, heißt im Klartext: Wenn das Eingangsarray 10 Einträge hat, habe ich eine Iterationsvariable, die von 10 runter zählt. Dadurch bekomme ich jede mögliche "Auftrittslänge", ich überprüfe immer ob es in dem vorher erstellten Array Zeichen gibt, die jene Länge haben (Ich habe dazu eine etwas abgewandelte Version vom ersten Beispiel verwendet, also dieses GetIndices) - Ich erstelle ein neues Character (char) Array, und füge jedes gefundene Zeichen an, unabhängig von der alphabetischen Reihenfolge, sobald das geschehen ist wird das Array nämlich sortiert. Ich verwende dazu Arrays.Sort(char[] input) - Ihr könnt aber auch die Methode aus der Vorlesung implementieren oder eine eigene schreiben, diese sortiert die Zeichen alphabetisch. Wenn das geschehen ist werden sie an einen Output string angehängt und sobald alle Möglichen Zeichenkettenlängen durch sind, terminiert das Ganze und der String kommt zurück. Ich habe euch noch ein bisschen was an Pseudo Code geschrieben, um das verständlicher zu machen:
toFrequencySorted:
"Erstelle Output String Variable und fülle sie mit einem leeren String"
und vlt hilft das:
"Erstelle Output String variable, fülle sie mit leerem String"
"Erstelle ein INT array mit 26 Einträgen für jeden Buchstaben seine Länge"
"Solange bis eine Iterationsvariable, die mit der Input länge initialisiert wird > 0 ist mache:"
Suche alle Vorkommenden Einträge mit Länge "ITERATIONSVARIABLE" im vorher erstellten INT Array
Erstelle ein neues Char Array, mit Länge der gefundenen Einträge und fülle es mit den zugehörigen Zeichen
Sortiere das Array Alphabetisch
Füge das Array an den Output string an
gib den output zurück
Zuletzt bearbeitet: