5
迷宮を歩く
または、それは実際には迷路ではありませんが、それでもです。 ルール: 入力は、2行の文字列で構成される*、1、xとX。そのひもは通り抜ける迷路です。行の長さは同じです。 入力を,(カンマ)を含む文字列またはこれらの2行の間の任意の便利な区切り文字として受け取ることができます。または、両方の行を関数の個別の引数として使用できます。 出力は、文字列を終了するために必要な手順の数です(最後の手順は、文字列から移動する手順です)。 最初のシンボルの前の左上隅(上の行)から開始します。 各ステップで、1シンボルずつ(n番目から(n + 1)番目の位置まで)移動します。次に、踏んだキャラクターに応じて、結果は異なります。各文字の機能は次のとおりです。 *-何もない。普通に踏むだけです。 x-踏んだら、ラインを切り替えますが、最初から同じ水平距離を保ちます。たとえば、上の行の3番目の位置に足を踏み、xここで小文字に遭遇しました。次に、すぐに下の行に移動しますが、再び3番目の位置に移動します。 X-行を切り替えて、次の位置に移動します。この例は同じですが、3番目から4番目の位置に移動します(したがって、2番目の行の4番目の位置にいます)。 1 -ちょうど別の位置で前進します。 各キャラクターが仕事をすると、スペースに置き換えられ、「機能」しなくなります。 次に例を示します。 入力: x * 前述のように、最初の行の最初のシンボルの前から開始します。最初のステップでは、文字に移動しx、この文字は、2行目に切り替えます。文字xはもはや機能しませんxが、で置き換えられ*ます。これは、後者の例でより関連します。あなたは今、下の行のアスタリスクにいて、それはあなたに何もしませんでした。 2番目のステップは前方への移動であり、ストリングを終了するため、ラビリンスは完了し、2ステップかかりました。 出力 2。 入力: xX* x1* 最初のステップ:xに進みますx。これにより、下の行に移動します。ここに、使用された文字がアスタリスクに置き換えられるというルールがあります。その後、最初の行に戻りますxが、使用されてアスタリスクになったため、もう行はありません。したがって、このアスタリスク上を安全に移動し、ステップが完了しました(最初の行の最初の位置にいます)。 2番目のステップ:上に移動Xすると、下の行に移動し、次に前方に移動します。2行目の3番目の位置(アスタリスク)に常駐し、2番目の位置(を含む1)には一度もアクセスしたことがありません。 3番目のステップ:前方に移動して、文字列を終了します。 出力:3。 テストケース: 入力: *1* xxx 出力:3。(13番目の位置にジャンプするため)。ここでは、2行目にアクセスすることはありませんが、入力の必須部分です。 入力: *X*1*x x*1xx* 出力:4。 入力: 1x1x ***X 出力:3。 入力: 1*x1xxx1*x x*x1*11X1x 出力:6。 入力: xXXXxxx111* **xxx11*xxx …