さて、 GitHub、Reddit、およびその他のサイトでのDoorknobのユーザー名は KeyboardFireです。それは私にアイデアを与えます...
タスク
あなたは、特別なキーボードを製造しているKeyboardFire Inc.で働いています。そして、「特別」とは、キーを押すたびに、家の中にあるものが燃えることを意味します!新しいKeyboardFireドアノブシリーズでは、火をつけるオブジェクトはドアノブです。
しかし、愚かな政府の規制のため、ユーザーは家のどのドアノブが火を灯すかを知る必要があります。
QWERTYキーボードの一部のこのASCIIアートを検討してください。
1|2|3|4|5|6|7|8|9|0
q|w|e|r|t|y|u|i|o|p
a|s|d|f|g|h|j|k|l
z|x|c|v|b|n|m
(|
はキー間の境界を表します。)
この正確なASCII描画は、種類の「グラフ」として扱うことができます。範囲内の各文字に[a-z0-9]
は、x(水平)およびy(垂直)インデックスが(0,0)
あり1
ます。たとえば、文字d
には座標があります(2,6)
(パイプとスペースは座標計算に含まれます)。
次に、各ユーザーの家について考えてみましょう。すべての家は20x4 ASCIIアートとしてトップダウンビューで描画できます(破壊的なキーボードを販売することが合法であるこの世界では、すべての家は同じサイズです)。を使用D
して、家の各ドアノブの位置をマークできます。以下に例を示します。
D D D D
D
D D
これを「ハウスマップ」と呼びます。(はい、それはたくさんのドアノブです!)
いずれかのキーを押すと、最寄りのドアノブが点灯します。たとえば、文字の前の座標を取得した場合d
、最も近いドアノブ(マンハッタン距離による)は座標にあり(1,4)
ます。これは、手紙d
に当たったときに火がついたドアノブです。炎のドアノブをでマークするF
と、結果は次のようになります。
D D D D
F
D D
スペック
プログラムには2つの入力があります。
- パターンに一致する文字列
[a-z0-9]+
。 - 家の地図。これは、文字列、文字列のリスト、または同等のものです。
文字列の各文字を調べて、それぞれのドアノブに火をつける必要があります(文字をに変更しますF
)。最寄りのドアノブがすでに燃えている場合は、そのままにしておきます。この方法を使用して火で照らすことができるドアノブが複数ある場合は、好きな方を照らすことができます。
文字列全体がこの方法で処理された後、結果のハウスマップを印刷する必要があります。
コードゴルフ、最短プログラムが勝ちます。通常のように禁止されている標準的な抜け穴。
例
文字列:
helloworld123
ハウスマップ:
D D D D
D
D D
考えられる結果:
F F F D
F
D F
または:
F D F D
F
D F
または:
F F D D
F
F F
または:
F D D D
F
F F
編集:ええと...私は1つの答えを持っている理由があります、+ 50の賞金があっても?道順が複雑/あいまいであると思うなら、コメントや何かで投稿してくれたらうれしいです...または私が何か間違ったことをしているのなら...
編集2:賞金は1日以内に期限切れになります!何か他のものを投稿してください!お願いします!お願いします!!!!:(
d
の座標は(2、6)であり、(2、2)ではないのはなぜですか?2)なぜ例には非常に多くの可能な答えがあるのですか?3)物事がどのように燃えるかを説明するとき、なぜあなたは話しているのd
ですか?押すだけでa
家に火がつくと言うのはなぜですか?d
あまりにも、それを行いますか?