Moin,
ich knoble schon länger an diesem Problem rum und komme nicht so richtig auf eine saubere Lösung. Ich würde gerne Listen dieser Art:
(wobei jede Zeile einen String darstellt)
------------------------------------------
Button MD4
Button MD5
Style AQ LX R3
Style AQ LX Read 4
Style AQ Score3
Style AQ R9
Style Mach1
Style Mach4*
Regan Muster11
Rower 123 A1
Rower 123 B2
Rower 123 C4
Tao Tao
------------------------------------------
in folgendes KlassenModel übersetzen:
ModelFamily // ModelName
Was für eine Schleifenlogik trennt mir das richtig (die Ausgangsliste, die ich parsen will, ist im Urspung schon nach ModelFamily gruppiert)?
Versteige ich mich bei mein Lösungsansatz in unnötige Tiefen oder ist das einfach so komplex?
Spoiler anzeigen
Erste, letzte String-Zeile erstmal ausgenommen.
Ich verfolge die Idee jede String Zeile nach den Leerzeichen nochmal in eine ListeOf String zu splitten.
Dann vergleiche ich das erste Wort der Liste mit dem ersten Wort der nächsten und der vorhergehenden Zeile falls da mindestens eine Übereinstimmung herrscht, adde ich dieses Wort zum ModelFamily-String bis dann keine Übereinstimmung mehr herrscht -> fertiger ModelFamilyName.
Falls oben und unten keine Übereinstimmung herrscht hat diese ModelFamily nur ein Model.
Dazu dann noch die ganze umständliche Logik erste und letzte Zeile abfangen. Sonderfall da die ja keinen Vorgänger Nachfolger haben... .
Muss ich mich da einfach "durchdebuggen" oder gibt es da was schlaueres (super dupper Regex pattern)?
e.g.:
Style AQ LX R3
Style AQ LX Read 4 -------------> "Style","AQ","LX" => FamilyModelName "Style AQ LX"
Style AQ Score3
Ich poste später mal Code falls ich da was gescheites zum Laufen bekomme.
ich knoble schon länger an diesem Problem rum und komme nicht so richtig auf eine saubere Lösung. Ich würde gerne Listen dieser Art:
(wobei jede Zeile einen String darstellt)
------------------------------------------
Button MD4
Button MD5
Style AQ LX R3
Style AQ LX Read 4
Style AQ Score3
Style AQ R9
Style Mach1
Style Mach4*
Regan Muster11
Rower 123 A1
Rower 123 B2
Rower 123 C4
Tao Tao
------------------------------------------
in folgendes KlassenModel übersetzen:
ModelFamily // ModelName
Button | MD4 |
Button | MD5 |
Style AQ LX | R3 |
Style AQ LX | Read 4 |
Style AQ | Score3 |
Style AQ | R9 |
Style | Mach1 |
Style | Mach4* |
Regan | Muster11 |
Rower 123 | A1 |
Rower 123 | B2 |
Rower 123 | C4 |
Tao | Tao |
Was für eine Schleifenlogik trennt mir das richtig (die Ausgangsliste, die ich parsen will, ist im Urspung schon nach ModelFamily gruppiert)?
Versteige ich mich bei mein Lösungsansatz in unnötige Tiefen oder ist das einfach so komplex?
Erste, letzte String-Zeile erstmal ausgenommen.
Ich verfolge die Idee jede String Zeile nach den Leerzeichen nochmal in eine ListeOf String zu splitten.
Dann vergleiche ich das erste Wort der Liste mit dem ersten Wort der nächsten und der vorhergehenden Zeile falls da mindestens eine Übereinstimmung herrscht, adde ich dieses Wort zum ModelFamily-String bis dann keine Übereinstimmung mehr herrscht -> fertiger ModelFamilyName.
Falls oben und unten keine Übereinstimmung herrscht hat diese ModelFamily nur ein Model.
Dazu dann noch die ganze umständliche Logik erste und letzte Zeile abfangen. Sonderfall da die ja keinen Vorgänger Nachfolger haben... .
Muss ich mich da einfach "durchdebuggen" oder gibt es da was schlaueres (super dupper Regex pattern)?
e.g.:
Style AQ LX R3
Style AQ LX Read 4 -------------> "Style","AQ","LX" => FamilyModelName "Style AQ LX"
Style AQ Score3
Ich poste später mal Code falls ich da was gescheites zum Laufen bekomme.
codewars.com Rank: 4 kyu