ある有名なケーブル会社には、リモコンを介して機能するやや不器用な「プログラムの検索」機能があります。ボタンを押すのにかなりの時間がかかります。ですから、私は動きの経済を賞賛しているので、指の動きを最小限に抑えるためにプログラマーの助けを求めたいと思いました。
Craptastic Search機能は、選択可能なセルのレイアウトを特徴としており、次のように、3つのセルの1行と6つのセルの6行が続きます。
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
各文字A-Zにはセルがありspa、検索文字列にスペースを追加するために使用されます。del文字を削除するために使用されることになっています。そして、sav検索文字列を保存するために使用されることを意味しています。この課題では、これらの実際の機能は無視します。ただし、セルは目的に応じて選択可能です。
空の検索文字列とA選択したセルから始めます。左、右、上、下の矢印ボタンを使用して、選択したセルを変更します。中央の「OK」キーを押すと、選択したセルの文字が検索文字列に追加されます。便宜上、我々は使います<、>、^、vと_左用、右、上、下とOK、それぞれ。
文字と数字の場合、方向ボタンの操作は簡単です。「ラップアラウンド」はありません。例えば、現在のセルがある場合Gは、<効果がありません。
したがって、検索文字列を入力BIGするには、シーケンスを使用できます
>_>v_<<_
(初期値>は、デフォルトの開始セルAからセルに移動するために必要ですB)。あるいは、もちろん代わりにを使用することもできます>_v>_<<_。ただし、この作業を実行できる8つのキーよりも短いシーケンスはありません。
一番上の行には3つのセルしかないので、アクションは少し異なり、少し複雑になります。
まず、選択したセルが一番上の文字行にあるA-F場合、^キーを押すと、選択したセルが真上に移動します。にA,B行ってdel、にC,D行ってspaにE,F行ってくださいsav。
一方、選択したセルが「del」の場合、vキーを押すと選択したセルがに移動しA、>キーを押すと選択したセルになりspaます。同様にv、キーが移動から選択されたセルspaへC、及びsavへE。
つまり、たとえば現在Bセルにいる場合、シーケンス^vはセルに戻りませんB。代わりに、Aセルに移動します。
そしてA、シーケンスはセルから始まり、セルにv>>^移動しCます。シーケンス^>>vがEセルに移動する間。
チャレンジ
テレビ番組や映画のタイトルを考えるsに文字のみからなる、A-Z、0-9とspace入力し、あなたのプログラム/機能、最小限の長さのキー押下のシーケンスのはず出力1 sCraptasticファッションに開始状態から検索文字列として。
出力は、文字列、または上、下、右、左、およびOKのシーケンスを表す個別の値のリストである必要があります。そのため、文字セットに制限されません<>^v_(udrl*または、スキーマが明確に示されている限り、整数要素0、1、2、3、4のリストも許容可能な代替となります)。
これはコードゴルフです。通常の抜け穴のタブーが適用されます。オッズが各言語であなたに有利になるように。
テストケース
以下は、入力と受け入れ可能な回答の例です(他の異なるシーケンスも正しくなりますが、提供されている例の長さ以下でなければなりません)。
(私はここにキーパッドを再投稿します。そうしないと、視覚的に簡単にプレイできるようになります...)
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_
delとsav、ここで役に立ちませんか?
delそしてsavそれらが選択されたときに「OK」が使用されている場合は機能がありません。しかし、それはキープレスを浪費するでしょう。
FA直進しないだけで、上下に移動します