Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
Das ist falsch, aus jedem Element müssen nur vier neue Elemente gemacht werden; die Klammerung um "b" existiert ja schon.Aus jedem Element des Zwischenergebnisses musst du nun die 8 neuen Elemente hinzufügen
Ja, das ist natürlich richtig, danke für die Verbesserung. Falls die Erläuterung von @fhoffmann noch nicht ausreichend war:Das ist falsch, aus jedem Element müssen nur vier neue Elemente gemacht werden; die Klammerung um "b" existiert ja schon.
Ohne Grund wird da ja das HashSet nicht explizit erwähnt worden sein 🙂Wichtig aber ist, dass kein Element in der Ergebnisliste mehrmals vorkommt
Aber das ist keine Aufgabe für einen Junior würde ich sagen. Das ist eine Aufgabe, die bei den Codility-Tests, auf die wir z.B. zugreifen, als schwere Aufgabe geführt werden dürfte.In meiner letzten Firma mussten Bewerber eine Aufgabe dieses Schwierigkeitsgrades innerhalb eines Vorstellungsgesprächs lösen.
Oh Gott, das habe ich nicht gesehen - nun wird es ja richtig komplizert.Was dabei auffallen sollte ist nun, dass z.B. "(xa)b" eine gültige Klammerung ist, aber diese in der Lösungsmenge nicht auftaucht.
Ja genau, ich selbst sehe daher als rekursiven Algorithmus derzeit, dass man eine Schleife hat in der man dann alle Möglichkeiten aufruft, mit denen man es in zwei Teile teilen kann.Oh Gott, das habe ich nicht gesehen - nun wird es ja richtig komplizert.
Dann ist ja auch "(x(ab))c" oder "(x(a)b)c" nicht in der Lösungsmenge enthalten.
Es wäre auch mein Ehrgeiz, doppelte Elemente durch die Programmierung zu verhindern (und diesen Job nicht einer Menge (java.util.Set) zu überlassen).Wenn man sich anschaut, was alles doppelt gemacht wird, dann findet sich hoffentlich noch die eine oder andere Optimierung.