接頭辞のない回文


8

かかるプログラムや関数書きN、およびSをし、長さの回文数は出力Sあなたのサイズのアルファベットを使用して構築することができますがNの間のサイズの任意のプレフィックスような2S-1は回文ではありません。

たとえば、N2S5の場合

有効な回文は次のようになります

01110
10001

したがって、答えは2になります

これはため、回答はその長さに基づいてバイト単位でスコアリングされ、バイト数が少ないほど優れています。


2
PPCGへようこそ!その簡潔なフォーマットにもかかわらず、これは正当な課題のように見えます-それが許可なしにどこかでだまされたものでも質問でもない場合に限ります。少なくとも、code-golfなどの客観的な主要な勝利基準を追加する必要があります。いくつかの例とテストケースも追加することをお勧めします。
Arnauld 2017

@Arnauldトピック外の質問を有効なチャレンジに変更することは可能です(ais523がそれを数回行いました)が、その場合は明らかにOPが望んでいないことです。とにかく害はありません。
user202729 2017

結果は無限ではありませんか?for N> = 2:01111111111111111111111111..0接頭辞が回文ではないような回文です
Nahuel Fouilleul

長さSの
@NahuelFouilleul

1
@ user77149ここで質問すると、「Jelly、15 bytes:Try it online!」のような回答が得られます
user202729

回答:



1

Pyth、16バイト

lf!tit_IM._T2^SE

ここでお試しください!

私の回答は、HaskellとPythonの回答ではなく、Dennisの結果に同意します。

使い方

lf!tit_IM._T2 ^ SE | 完全なプログラム。

              SE | 2番目の入力(E)を取得し、1 ... Eの整数範囲にします。
             ^ | そして、Qが最初の入力であるQth Cartesian Powerを取ります。
 f | Tを変数として使用する条件でフィルタリングします。
         ._T | Tのすべての接頭辞を取ります...
      _IM | そして、各プレフィックスについて、それらが逆転に対して不変であるかどうかを確認します。
     t | 尾を取る(最初の要素を削除する)。
    i 2 | 基数2から整数に変換します。
  !t | デクリメント、ネゲート。整数の中で0だけが偽物であることに注意してください。
l | フィルタリングされたリストの長さを取得します。

1

Husk、19バイト

Lf(=1ḋ↔mS=↔‼hU¡h)πŀ

オンラインで試す、解決策をご覧ください

説明

Lf(=1ḋ↔mS=↔‼hU¡h)πŀ  -- takes two arguments N S, example: 2 4
                  ŀ  -- range [0..N-1]: [0,1]
                 π   -- all strings of length S: [[[0,0,0,0],[0,0,0,1],…,[1,1,1,1]]
 f(             )    -- filter with the following predicate (example with [0,1,1,0]):
              ¡h     --   infinitely times take the head & accumulate in list: [[0,1,1,0],[0,1,1],[0,1],[0],[],[],…
             U       --   only keep longest prefix with unique elements: [[0,1,1,0],[0,1,1],[0,1],[0],[]]
           ‼h        --   get rid of last two (apply twice head): [[0,1,1,0],[0,1,1],[0,1]]
       m             --   map the following
        S=           --     is itself equal to..
          ↔          --     .. itself reversed?
                     --   ↳ [1,0,0]
      ↔              --   reverse: [0,0,1]
     ḋ               --   convert from binary: 1
   =1                --   is it equal to 1: 1
                     -- ↳ [[1,0,0,1],[0,1,1,0]]
L                    -- length: 2

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