プログラミングパズルとコードゴルフ

プログラミング愛好家やコードゴルファーのためのQ&A

30
文字列が完全に同じ部分文字列で構成されているかどうかを確認します
これは(もちろん許可を得て)この質問から取られています。引用します: 文字列を受け取る関数を作成します。入力が繰り返し文字シーケンスのみで構成されているかどうかに基づいて、trueまたはfalseを返す必要があります。指定された文字列の長さは常に1より大きく、文字シーケンスには少なくとも1回の繰り返しが必要です。 いくつかの例: 'aa' //true 'aaa' //true 'abcabcabc' //true 'aba' //false 'ababa' //false 'weqweqweqweqweqw' // false 具体的には、厳密に繰り返し部分文字列で構成される文字列のチェック(Update)は、trueまたはfalseの表現を出力できますが、エラー出力はしないでください。厳密に英数字の文字列。それ以外の場合は、標準のゴルフ規則。これはコードゴルフであるため、各言語のバイト単位の最短回答が優先されます。

15
マトリックスジグソーパズル
入力: 整数 n 2つの等しいサイズの正方行列(幅/高さがの倍数であるn) 出力: 二つの異なるご自身の選択の値、1はfalsey結果のtruthy結果と1のためのもの(そうはい、のいずれか1/0の代わりtrue/falseにもかかわらず、Javaのような言語のための有効な出力である。それらは、公式truthy / falsey値と考えられていません)。 真実/偽の出力はn by n、ある行列のサイズのブロックを他の行列と等しくなるように再配置できるかどうかを示します。 例: 入力: Matrix 1: 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 0 9 8 1 1 1 1 1 …

30
!インサート!!n!b!e!t!w!e!e!n!
ここから投稿。 この課題は、この質問から高度に「抽出」されています。@Akababaに感謝します! このタスクでは、文字列の先頭とすべての文字の後に感嘆符を挿入する必要があります。 ルール 空でない文字列の入力が常にあります。入力にもタブは含まれません。入力には、非拡張ASCII印刷可能文字と改行のみが含まれると想定できます。 言語が改行を検出できない限り、入力には末尾の改行は含まれません。 これは、コードとゴルフのコンテストです。最短の答えが勝つはずです。 例 4つの改行は、改行で区切られた5つの感嘆符になります。これをマークダウンテキストとして配置するのは非常に難しいため、代わりにこれを記載します。 1 2 3 4 5 6 129591 129012 129127 129582 0 出力 !1!!2!!3!!4!!5!!6! !1!2!9!5!9!1!!1!2!9!0!1!2!!1!2!9!1!2!7!!1!2!9!5!8!2! ! !0! asd afjoK ak:e kPrLd フォジョ; KFO KFkepjgop sgpaoj faj 出力 !a!s!d!!a!f!j!o!K!!a!k!:!e! !k!P!r!L!d! !!!!!f!O!J!O!E!;! !!!!!K!F!O! !K!F!k!e!p!j!g!o!p!!s!g!p!a!o!j!!!!f!a!j! 1文字のみの基本テストケース: a 出力 !a! (オートコンプリート!冗談です、そのようなことはありません。)感嘆符が含まれています: !! !! !! !! !! …
24 code-golf  string 

25
シーケンスを印刷する
21、21、23、20、5、25、31、24、? このパズルに触発され、整数n>0n>0n>0与えられると、非整数に達するまで次のシーケンスを出力します(最初に自分でパズルを解きたい場合のためにネタバレ) a0=na0=na_0 = n4 K + 1 = 4 、K ⋅ (4 K + 1 )4 、K + 2 = 4 、K + 1 + (4 K + 2 )4 、K + 3 = 4 、K + 2 - (4 k + 3 )a 4 k + 4 a4k+1=a4k⋅(4k+1)a4k+1=a4k⋅(4k+1)a_{4k+1} …

1
単純な逆ポーランド記法プログラミング言語用にコンパイラを最適化する
説明 仮想プログラミング言語(IPL)はポーランド語逆表記法を使用します。次のコマンドがあります。 i-番号を入力し、スタックにプッシュします o-スタックの非破壊出力トップ(数値はスタックにとどまります) d-スタックの先頭を破棄 整数 -この数値をスタックにプッシュします +-* -スタックから2つの数値をポップし、対応する操作を実行して結果をプッシュバックします。IPLには区分はありません。 IPLは整数でのみ機能し、単純な計算に使用されます。IPLプログラムは1行で記述され、スペースで区切られます。空の文字列は有効なIPLプログラムです。 IPLプログラム: i i + o 2つの数値を入力し、それらを加算して結果を出力します。 スタックにプッシュできる入力番号と整数は[-999、999]の範囲ですが、出力は任意です。あなたの言語が大きな数字をサポートしていない場合でも大丈夫です。 入出力フォーマット 文字列、リスト、トークンなど、理解および読み取り/書き込みが明確である限り、任意の入力/出力形式を選択できます。 仕事 IPLプログラムが与えられます。それを最適化する(長さを減らす)必要があります。 i 12 + 3 + o d 2 3 + d 最適化後は i 15 + o スタックの状態を保持する必要はありませんが、入力および出力の量とその順序は、元の最適化されたプログラムと一致する必要があります。 IPLプログラム: -40 i * 2 * o i + 3 1 + …

25
新しいネイバーシーケンス
負でない整数は常に同じ2つの*隣人を持っていることにうんざりしているので、少し混同することにします。しかし、彼らも怠け者であり、元の位置にできるだけ近くに滞在したい。 それらは次のアルゴリズムを思い付きます: 最初の要素は0です。 要素がまだ配列には存在しないとの隣接していない最小の数であるの要素。nt hnthn^{th}(n − 1 )t h(n−1)th(n-1)^{th} これにより、次の無限シーケンスが生成されます。 0,2,4,1,3,5,7,9,6,8,10,12,14,11,13,15,17,19,16,18,20,22,24,21,23,25,27,29,26,28 ... 0は最初の要素です。1は、まだシーケンスに含まれていない最小の数値ですが、の近傍です0。次に小さい数は2なので、これはシーケンスの2番目の要素です。今残っている数である1,3,4,5,6,...が、両方として1と3の隣人であり2、4シーケンスの第三のメンバーです。の1隣人ではないので、4最終的に4番目の要素としての位置を占めることができます。 タスク 上記のシーケンスを生成する関数またはプログラムをできる限り少ないバイトで記述します。 してもいいです シーケンスを無限に出力し、 入力を取得し、シーケンスの要素を返す、またはnnnnt hnthn^{th} 入力を受け取り、シーケンスの最初の要素を返します。nnnnnn 後者の2つのオプションのいずれかを選択する場合、ゼロまたは1インデックスのどちらでも問題ありません。 上記のアルゴリズムに従う必要はありません。同じシーケンスを生成する方法であれば問題ありません。 コードゴルフにインスパイアされた最高の順列。これはA277618であることがわかります。 *ゼロには文字通り隣人が1人しかいないので、気にしません。

11
このダイヤモンドパターンを描く
以下のパターンは、この課題の基礎となります。 /\ \/ /\ / \ / \ /\/ \/\ \/\ /\/ \ / \ / \/ /\ \/ 入力幅と高さを指定すると、それぞれ>=1、上記のASCIIアートパターンを何度も出力し、小さなひし形で結合(および重なり)します。 たとえば、次はwidth = 2andを使用した入力height = 1です。 /\ /\ \/ \/ /\ /\ / \ / \ / \ / \ /\/ \/\/ \/\ \/\ /\/\ /\/ \ / \ / \ …

15
すべてのシングルエイト
から0までの整数の空でない長方形の配列が与えられた9場合8、隣接するセルの数と出力しないセルの量を出力し8ます。ここでは、隣接はムーアの意味で理解されます。つまり、対角線を含みます。その8ため、配列の端にあるセルを除き、各セルには近傍があります。 例えば、与えられた入力 8 4 5 6 5 9 3 8 4 8 0 8 6 1 5 6 7 9 8 2 8 8 7 4 2 出力はでなければなりません3。3つの適格なセルは、アスタリスクでマークされた次のセルになります(ただし、そのようなエントリの量だけが出力されます)。 * 4 5 6 5 9 3 8 4 * 0 8 6 1 5 6 7 9 * 2 8 8 …

18
発音並べ替え™
さまざまな派手な並べ替えアルゴリズムを知っていますが、これらのどれも発音しやすい方法で数字を提供しません。これを改善するために、私は発音リストを並べ替える最も自然な方法である発音ソート™の使用を提案します。 発音 (このチャレンジで)数字を発音するための公式ルールは、数字が1つずつ発音され、結果の文字列が辞書式順序でソートされるということです。例として、これは番号845が発音されることを意味し、"eight four five"それに応じてソートする必要があります。 負の数 負の数は、単語の前に付けて発音し"minus"ます。したがって、-23と発音され"minus two three"ます。これにより、4(4)と9(9)で始まる数字の間の負の数が出力の途中で終わることに注意してください。 GuideSoとしての発音並べ順の公式の順序は次のとおりです。 8 五 四 マイナス 九 1 セブン 六 三 二 ゼロ あれは、 8, 5, 4, -, 9, 1, 7, 6, 3, 2, 0 入力 範囲の整数のリストで、最大100個の要素が含まれます。文字列のリストとしての入力は許可されていません。ご使用の言語がリストとしての入力をサポートしていない場合、入力を個別の整数として許可することができます。[ - 999 、999 ][−999、999][-999, 999] 入力には、無効な数字や0で始まる数字(数字0自体を除く)は含まれません。通常、入力はソートされず、任意の順序で指定できます。 出力 同じ整数、発音Sort™順。数字は、ソートを取得するために発音に変換するだけであり、出力には文字列を含めないでください。 例 例では、中間のステップ(括弧で囲まれた)はガイドとしてのみ機能し、出力の一部ではありません。 [1, 2, 3] -> (['one', …

14
数スパイラル問題
番号スパイラルは、左上の正方形の番号が1の無限グリッドです。スパイラルの最初の5つの層は次のとおりです。 あなたの仕事は、行yと列xの数を見つけることです。 例: Input: 2 3 Out : 8 Input: 1 1 Out : 1 Input: 4 2 Out : 15 注意: 任意のプログラミング言語が許可されています。 これはコードゴルフの挑戦なので、最短のコードが勝ちます。 幸運を祈る! ソース:https : //cses.fi/problemset/task/1071
24 code-golf  math 

3
レースアラウンドザトラック
最速のレーサーを探しています。以下に示すこの18x14トラックの最速ラップを見せてください。 ______ / \ / \ / ____ \ / / \ \ / / \ \ | | | | | | | | | | | | | | | | \ \ / / \ \____/ / \ / \ / \______/ あなたの仕事は、すべての可能な位置で一度トラックの下で車を動かすことです。 _ | | |_| …

13
3の10進立方根を見つける
私は、10進の数を無限に左に向かう数、または10の非常に大きな累乗を法とする整数と考えるのが好きです。 物事は左に無限に運ばれて消えます。私の言いたいことを見るため...6667 * 3 = 1に、10進の土地では、左に運ばれる「2」が無限になるので注意してください。 加算/乗算のn最後のn桁は被加数/被乗数の最後の桁のみに依存するため、10進の数に対しては加算と乗算が有効です。 与えられた場合n、n3の10進立方根の最後の桁、つまり、x満たす必要がありx*x*x = 3ます。 終了: ...878683312291648481630318492665160423850087895134587 コードは送信n=1000前に終了する必要があります。 印刷する必要がある数値がゼロで始まる場合、実際には余分なゼロを印刷するポイントではないため、先行ゼロを印刷する必要はないとしましょう。 これはcode-golfです。バイト単位の最短回答が優先されます。

3
アイスゴルフチャレンジ
この課題の目標は、特定のコースを完了するために必要な最小限のストライクを返すプログラムまたは関数を作成することです。 入力 コースのレイアウトは、適切な方法で渡すことができ、お好みの形式にできます。(コンソールから読み取られ、入力パラメーターとして渡され、ファイルまたはその他の複数行ストリング、ストリング配列、2次元文字/バイト配列から読み取られます)。 ボールとホールの開始位置も入力として渡すことができます。入力から解析する必要はありません。テストケースでは、実際の位置について混乱がないことを確認するために、コースに含まれています。 入力文字を別の文字(印刷可能なASCII文字など)として認識できる限り、他の文字に再マッピングできます。 出力 プログラムは、賢明な形式(結果を説明する文字列、整数、浮動小数点数または俳句)で入力として渡されたコースについて、可能な限り低いスコア(ホールに到達するために必要なストライキの最小量)を返す必要があります コースを打つことが不可能な場合は、リターンします-1(または、ビート可能なコースでは返されない、選択した他の偽の値)。 例: この例では、位置は0ベース、X / Y、左から右、トップダウンで表記されていますが、結果は完全にフォーマットに依存しないため、任意のフォーマットを使用できます。 入力: ########### # ....# # ...# # ~ . # # ~~~ . # # ~~~~ # # ~~~~ # # ~~~~ o # # ~~~~ # #@~~~~ # ########### Ball (Start-Position): 1/9 Hole (End-Position): 8/7 出力: 8 …

15
モジュラー放送
この課題は、2018年5月の「Language of the Month」イベントの一部として、MATL言語の機能の一部に関連しています。 前書き MATLでは、多くの2入力機能が働く要素単位で放送。これは次のことを意味します。 要素単位(またはベクトル化):関数は、サイズが一致する2つの配列を入力として受け取ります。関数によって定義された操作は、対応するエントリの各ペアに適用されます。たとえば、修正後表記を使用する場合: [2 4 6] [10 20 30] + 与え ouputをを [12 24 36] これは多次元配列でも機能します。表記[1 2 3; 4 5 6]は2× 3配列(行列)を表します 1 2 3 4 5 6 これは2、最初の次元(垂直)と32番目(水平)に沿ったサイズを持ちます。例えば [2 4 6; 3 5 7] [10 20 30; 40 60 80] * 与える [20 80 180; …

10
騎士の距離
チェスでは、グリッド(x、y)上の騎士は(x-2、y-1)、(x-2、y + 1)、(x-1、y-2)、(x-1、 y + 2)、(x + 1、y-2)、(x + 1、y + 2)、(x + 2、y-1)、(x + 2、y + 1)を1ステップで。(0、0)に騎士だけがいる無限のチェス盤を想像してください: Knightを(0、0)から(t x、t y)に移動するのに何ステップ必要ですか? 入力 2つの整数:t x、t y ; -100 <t x <100、-100 <t y <100 出力 Knightを(0、0)から(t x、t y)に移動するために必要な最小限の手順。 ルール コードゴルフ テストケース x y -> out 0, 0 -> 0 0, 1 …

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