Meine Lösung des Blau.de Vanity Wettbewerbs 2012

An meiner FH Wedel hat Blau.de passend zur Firmenkontaktmesse eine kleine Programmieraufgabe gestellt, für die es auch kleine Preise von getdigital.de gab.

In diesem Artikel möchte ich kurz meine Lösungen und Ideen dazu vorstellen.

Aufgabe war wie folgt:

Es sollte mit Hilfe einer Wortliste aus einer Vanity Nummer wieder die "gewählten Wörter" ermittelt werden. Eine Vanity Nummer ist z.B. "0800 VOLKSWAGEN", wobei die Buchstaben statt der eigentlichen Zahlen auf den Telefontasten genannt werden.
Mehr zur Buchstabenwahl: http://de.wikipedia.org/wiki/Buchstabenwahl.

Lösung 1 - PHP:

Meine erste Lösung habe ich in PHP entwickelt, aber mit einer speziellen Zielsetzung. Es sollte keine Zuweisungen und nur Map-Filter-Reduce verwendet werden. Dies ist mir auch gelungen.
PHP bringt erstaunlich viele Funktionen mit, die es ermöglichen ohne Schleifen zu arbeiten.

Quellcode: https://gist.github.com/2987660

Lösung 2 - Vala:

Vala hat mir ein Kommilitone mal gezeigt und für diese Aufgabe wollte ich es einfach mal ausprobieren. Vala ist eine Programmiersprache, die vom Vala-Compiler in C-Code übersetzt wird, welcher ganz normal mit dem gcc übersetzt werden kann. Letztendlich ähnelt Vala einer Mischung aus C# und Java, da Objektorientierung und viele vorgefertigte Datenstrukturen verfügbar sind.
Wer schon mal mit C# oder Java gearbeitet hat, sollte mit Vala zurechtkommen, wenn man denn entsprechende Doku findet.

Quellcode: https://gist.github.com/2987673

Compile: "valac --pkg gee-1.0 --pkg gio-2.0 --pkg glib-2.0 devanity.vala"

Lösung 3 - Bash:

Nachdem ich eine Funktionale Lösung und eine Objektorientierte Lösung entwickelt habe, wollte ich meine Bash Fähigkeiten auffrischen und das ganze kurz als Bash Script lösen. Rausgekommen ist ein Script das mit erstaunlich wenig Befehlen ziemlich schnell war.
Ich habe festgestellt, dass Funktionen in Bash nicht zu den schnellsten gehören, und habe daher auf externe Programme wie "paste" und "grep" ausweichen müssen.

Quellcode: https://gist.github.com/2987696

Aufgabe:

Wer sich selber versuchen möchte, hier eine Vanity Nummer zum rausfinden: "734 724528 8353366437 2528"
Und eine Wortliste: messe_wedel.zip

Related posts:


 
 
 

Die Kommentarfunktion zu diesem Beitrag wurde deaktiviert.