Wahrscheinlich kennen viele die Serie Breaking Bad mit dem an Krebs erkrankten Walther White in der Hauptrolle. Um seine Familie finanziell abzusichern, beginnt er mit der Produktion von Crytal Meth. Dass sein Schwippschwager Hank ausgerechnet Ermittler bei der DEA ist, macht die Arbeit im eh schon schwierigen Drogenmilieu nicht einfacher.
Selbst wenn man die Serie nicht gesehen hat, kennt man wohl den charakteristischen Namenszug:
Aufgabe
Auf der Seite https://breakingbad.echosystem.fr/ kannst du einen Namen eingeben und dieser wird dann im Breaking-Bad-Style ausgegeben. Deine Aufgabe ist es, einen einzugebenden Namen auf das Vorkommen der Elemente hin zu untersuchen.
Regeln
Wenn du verschiedene Namen testest, dann wird dir auffallen, dass in einem Namen verschiedene Möglichkeiten geben kann, ein Element zu finden. Es können auch mehrere Elemente vorhanden sein.
Um sicherzustellen, dass der Code richtig arbeitet, müssen diese Regeln natürlich definiert werden. Hier gibt es keine „Standard-Regeln“. Folgende Regeln kannst du nutzen oder auch entsprechend abändern:
- Es wird zuerst immer das zweistellige Element verwendet (sofern vorhanden) und dann das einstellige (Es wird bei „Bad“ also Barium verwendet und nicht Bor)
- Wird ein Element am Anfang eines Namens gefunden, dann hat es – unabhängig von der Länge des Elements – Vorrang, auch wenn später ein zweistelliges Element vorhanden ist (es wird also „Pasta“ ermittelt und nicht „PAsta“)
- In einem Namen darf nur ein Element verwendet werden (Also nicht „FreiTag“).
- Werden mehrere Elemente gefunden, dann hat das Element Vorrang, welches:
- weiter [ vorne | hinten ] steht
- im Periodensystem den [ kleineren | größeren ] Wert hat
- alphabetisch weiter [ vorne | hinten ] steht
- Im gesamten Namen dürfen nur unterschiedliche Elemente verwendet werden (Also nicht: „PeTer PeTersen“, sondern „PeTer PetErsen“)
Ausgabe
Die grafischen Fähigkeiten des SAP-Systems sind nun mal etwas eingeschränkt. Von daher lautet die Aufgabe nur, ermittle zu einem einzugebenden Namen die anhand des Periodensystems der Elemente hervorzuhebenden Buchstaben. Die Ausgabe oder die Ermittlung der hervorzuhebenden Buchstaben kann so erfolgen, wie man es am sinnvollsten oder einfachsten findet.
Die Rückgabe kann zum Beispiel durch einfachen HTML-Code erfolgen:
<b>Br</b>eaking <b>Ba</b>d
Es könnten auch die Positionen und Offsets der jeweiligen Zeichen zurückgegeben werden:
POS | OFFSET
1 | 2
10 | 2
du könntest auch eigene Markierungen verwenden:
~Br~eaking ~Ba~d
Eine weitere Alternative wäre, dass die hervorzuhebenden Zeichen ermittelt werden:
Br
Ba
Unit Tests
Die Aufgabe eignet sich perfekt für Unit Tests. Als solltest du diese auch nutzen.