位置認識


10

位置認識

あなたの仕事は、その文字(元のプログラムを含む)のすべての順列に対して、元のプログラムに対するすべての文字の位置を出力するプログラムを生成することです。

あなたのプログラムが

Derp

出力する必要があります

[0, 1, 2, 3]

(または同等のもの)。これは、あるDている0番目の位置、eである1、ST rは2NDを、そしてRD。p3

元のプログラムであるが、その文字が入れ替えられた別のプログラムを見てみましょう。

epDr

出力する必要があります

[1, 3, 0, 2]

ためeにある1元のプログラムの番目の位置、pである3番目の位置、目、およびND。D0r2

元のプログラムに2つの繰り返し文字がある場合:

abcda -> [0, 1, 2, 3, 4]

その後順列のために、0そして4、アレイ内では昇順でなければなりません。

baadc -> [1, 0, 4, 3, 2] (0 first, then 4)

ルール:

  • プログラムには、少なくとも2つの固有の文字が含まれている必要があります。
  • ほとんどのfloor(n/2)キャラクターは同じであるべきです。

     aabb (acceptable)
     aaaabc (not acceptable, only floor(6/2) = 3 a's allowed)
    
  • プログラムの出力は、すべての文字の位置を順番に含む配列(または類似の何か)か、区切り文字を含む文字列のいずれかになるため、これらは完全に問題ありません。

    [0, 1, 2, 3]
    0,1,2,3
    0 1 2 3
    

7
私はこの課題が重要な解決策になることはないと思います。長さが5以上の任意の言語での事実上すべての回答は、すべての順列に対して有効なプログラムではなく、目の前の課題を解決するプログラムは言うまでもありません。
orlp 2016

1
@ Qwerp-Derpサンドボックスでほとんど誰も何も言いません。しばらく前に、サンドボックスに1か月ほど(または約)滞在した後、質問を投稿しました。そして、私がそれを投稿したときだけ、人々が間違いを指摘し、反対票が降ったときでした。私の正直な意見では、サンドボックスは役に立たない。
Ismael Miguel

1
かつて、この課題では、短い回答よりも長い回答のほうが印象的だと感じました。
Wojowu 16

1
@Wojowu可能であればコードボウリングにできます-最長のプログラムが勝ちます。
clismique 2016

1
12R のプログラムは有効でしょうか?それは単に印刷12され、並べ替えられれば; 21
Billywob 2016

回答:


21

実際には、2バイト

10

オンラインでお試しください!

これはプリント

0
1

一方、(唯一の)他の順列

01

プリント

1
0

使い方

実際には、連続する数字は個別に解析されるため、スタックに110プッシュし、次にその上に0をプッシュします。

プログラムが終了すると、スタックは上から下に印刷されるため、最初に0、次に改行、1の順に印刷されます。

混乱したプログラム01は、逆の順序で同じことを行います。


1
これが機能する他の言語。真剣に、05ab1e、///、2sable。
ティールペリカン

仕様では、数値は分離する必要があると述べています。それは真剣に動作しますが、実際には実際にはちょうど真剣に2.0です。
Dennis

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.