Ein bestimmtes bekanntes Kabelunternehmen verfügt über eine etwas ungeschickte Funktion zum Suchen nach Programmen, die über die Fernbedienung funktioniert. Es dauert sehr viel Knopfdruck; Als Bewunderer der Bewegungsökonomie dachte ich, ich würde die Hilfe eines Programmierers suchen, um die Anzahl der Fingerbewegungen, die ich machen muss, zu minimieren.
Die Craptastic Search-Funktion bietet ein Layout aus auswählbaren Zellen, 1 Zeile mit 3 Zellen, gefolgt von 6 Zeilen mit 6 Zellen, das folgendermaßen aussieht:
del spa sav
A B C D E F
G H I J K L
M N O P Q R
S T U V W X
Y Z 0 1 2 3
4 5 6 7 8 9
Für jeden Buchstaben gibt es Zellen A-Z, mit spadenen der Suchzeichenfolge ein Leerzeichen hinzugefügt wird. delsoll verwendet werden, um ein Zeichen zu löschen; und savsoll zum Speichern der Suchzeichenfolge verwendet werden. Wir werden diese tatsächlichen Funktionen für diese Herausforderung ignorieren. Ansonsten sind die Zellen für unsere Zwecke noch auswählbar.
Wir beginnen mit einer leeren Suchzeichenfolge und der Aausgewählten Zelle. und wir verwenden die Pfeiltasten nach links, rechts, oben und unten, um die ausgewählte Zelle zu ändern. Wenn die zentrale OK-Taste gedrückt wird, wird das Zeichen in der ausgewählten Zelle zur Suchzeichenfolge hinzugefügt. Der Einfachheit halber werden wir verwenden <, >, ^, vund _für links, rechts, oben, unten und OK sind.
Bei den Buchstaben und Zahlen ist die Bedienung der Richtungstasten unkompliziert. Es gibt kein "Wrap-Around"; Wenn sich beispielsweise die aktuelle Zelle befindet G, <hat dies keine Auswirkung.
Um die Suchzeichenfolge einzugeben BIG, könnten wir die Sequenz verwenden
>_>v_<<_
(Die Initiale >ist erforderlich, um uns von der Standardstartzelle Ain die Zelle zu verschieben. B) Alternativ könnten wir natürlich stattdessen verwenden >_v>_<<_; Beachten Sie jedoch, dass es keine kürzere Sequenz als 8 Tasten gibt, die die Aufgabe ausführen können.
Da die oberste Reihe nur drei Zellen hat, ist die Aktion dort etwas anders und kompliziert die Dinge ein wenig:
Befindet sich die ausgewählte Zelle in der obersten Buchstabenzeile A-F, ^bewegt der Schlüssel die ausgewählte Zelle direkt darüber. Also A,Bgeh zu del, C,Dgeh zu spaund E,Fgeh zu sav.
Wenn andererseits die ausgewählte Zelle 'del' ist, verschiebt der vSchlüssel die ausgewählte Zelle in Aund der >Schlüssel macht die ausgewählte Zelle spa. In ähnlicher Weise vverschiebt die Taste die ausgewählte Zelle von spanach Cund savnach E.
Dies bedeutet , dass zum Beispiel, wenn Sie sich gerade an dem sind BZelle, die Sequenz ^vzurückkehrt Sie nicht auf die BZelle; Stattdessen gelangen Sie in die AZelle.
Und beginnend bei der AZelle v>>^bewegt uns die Sequenz zur CZelle; während die Sequenz ^>>vuns in die EZelle bewegt .
Die Herausforderung
Bei einer TV - Sendung oder einen Film Titel s, die ausschließlich aus Zeichen A-Z, 0-9und spaceIhr Programm / Funktion sollte eine Ausgabe einen der Sequenzen von Tastenfolgen minimaler Länge geben sals Suchbegriff aus dem Ausgangszustand in Craptastic Art und Weise.
Ihre Ausgabe sollte eine Zeichenfolge oder eine Liste unterschiedlicher Werte sein, die eine Folge von Auf, Ab, Rechts, Links und OK darstellen. Sie sind also nicht auf den Zeichensatz beschränkt <>^v_(z. B. udrl*oder eine Liste mit ganzzahligen Elementen 0,1,2,3,4 wären akzeptable Alternativen, solange Sie Ihr Schema formulieren).
Das ist Code-Golf ; Es gelten die üblichen Lücken-Tabus. Mögen die Chancen für jede Sprache jemals zu Ihren Gunsten sein.
Testfälle
Nachfolgend finden Sie Eingaben und eine akzeptable Beispielantwort (andere unterschiedliche Sequenzen sind ebenfalls korrekt, müssen jedoch höchstens die Länge der bereitgestellten Beispiele haben).
(Ich poste die Tastatur hier erneut, damit man leichter visuell mitspielen kann, wenn man das nicht will ...)
del spa sav
A B C D E F
G H I J K L
M N O P Q R
S T U V W X
Y Z 0 1 2 3
4 5 6 7 8 9
BIG >_>v_<<_
THE OFFICE >vvv_^^_>>>^_^<_vvv_>>>^^__<<<v_^_>>_
FARGO ^>>v>_^<<v_^>>v>vv_<<<<<^_>>v_
BUFFY >_>vvv_>>>^^^__^<<vvvvv_
DALLAS >>>_<<<_^>>v>v__^^<<v_vvv_
THX1138 >vvv_^^_>>>>vv_<<v__>>_<v_
ON DEMAND >>vv_<_^^^>_v>_>_<<<<vv_^^_>vv_>>^^_
NEWS RADIO >vv_>>>^^_vvv_<<<<_^^^^>_>vvv>_^^^<<v_>>>_<v_v_
ROOM 909 ^>>v>vv_<<<__<<_^^^>_>vvvvvv>_<<<^_>>>v_
delund savnutzlos hier?
delund savhaben keine Funktion, wenn 'OK' verwendet wird, wenn sie ausgewählt werden; aber das würde einen Tastendruck verschwenden.
FAgeht nicht geradeaus, sondern rauf und runter