タグ付けされた質問 「code-golf」

コードゴルフは、ソースコードの最小バイトで特定の問題を解決するための競争です。

11
どの曲が再生されていますか?
このxkcdに触発された あなたはシャザムで働いており、彼らはあなたのためのプロジェクトを持っています。一部の顧客は、アプリが携帯電話で多くのスペースを占有していることに不満を持っているため、アプリのライトバージョンをコーディングしてほしいと考えています。残念ながら、既存のコードは「na」という単語しか理解できないため、すぐに出荷する必要があります。それは大丈夫です、私たちは持っているもので最善を尽くします。 チャレンジ ユーザー入力またはコマンドライン引数を取る完全なプログラムを作成し、曲のタイトルとアーティストを印刷する必要があります。プログラムのサイズについて不満を持っているお客様を修正しようとしているため、コードはできるだけ短くする必要があります。入力はnaのみで構成された文字列であり、その間に単一のスペースがあります。小文字/大文字は任意です。これは有効な入力と見なされます:Na Na nA na NAこれは無効な入力です:nah nah NA naNa bananaどの曲が再生されているかを判断し、正確に次の形式で出力する必要があります。 Song: <trackname> Artist: <artist> 入力が正確に 8 naの場合、これは2つの別個の曲に一致するため、両方を印刷する必要があります。 Song: Batman Theme Artist: Neal Hefti そして Song: Na Na Hey Hey Kiss Him Goodbye Artist: Steam 入力が正確に 10 naの場合、次を印刷する必要があります。 Song: Katamari Damacy Artist: Yuu Miyake 入力が正確に 11 naの場合、次を印刷する必要があります。 Song: Hey …

30
アレイを統合する
タスクは簡単です。intの配列を統合します。このアレイの統合は、次のもので構成されています。 0のすべてのインスタンスは、配列の最後に移動する必要があります。 ゼロ以外の整数の間に0があってはなりません。 すべての非ゼロインデックスは順序を保持する必要があります。 チャレンジ 最小バイト数で配列を統合します。 ランダムな整数を使用して、言語の最大サイズまでのランダムな長さの配列を統合しています。入力はあなたの言語にとって自然な方法かもしれません。 例 入力 0 5 8 8 3 5 1 6 8 4 0 3 7 5 6 4 4 7 5 6 7 4 4 9 1 0 5 7 9 3 0 2 2 4 3 0 4 8 7 3 1 …

15
シンコペーションを見つける
q四分音符をe表すsと8 分音符を表すs のみで構成される文字列の入力が与えられると、シンコペーションされる四分音符のインデックスを出力します。 シンコペーションは複雑ですが、この課題のために、「シンコペート」の定義は非常に単純です。つまり、「オフビート」で始まる4分音符、つまりn / 4で「and」としてカウントされるビートです。時間。 あるいは、奇数の8分音符が先行する4分音符として定義することもできます。たとえば、*以下のマークが付いたノートはシンコペートされていると見なされ、そのインデックスも表示されます。 eqqeqqeqqe ** ** 12 78 Output: 1 2 7 8 入力は、常に4/4時間の整数の小節から構成されます(4分音符は1小節の4分の1、8分音符は1小節の8分の1)。(入力も空になることはありません。)出力は、数字を含まない区切り文字または配列/リスト/などで区切られた要素を持つ単一の文字列にすることができます。出力は、必要に応じて1から始まる(つまり、最初のインデックスが0ではなく1)場合があり、任意の数値ベース(単項、十進など)になる場合もあります。 これはcode-golfであるため、バイト単位の最短コードが優先されます。 テストケース: In Out ----------------------------------------------- eqqqe 1 2 3 qeqeq 2 qqqeqqeeeeqeqeqeqqeqqeqq 4 5 10 14 19 20 eeeeeqeeqeeqqqqeqeqeeqe 5 8 11 12 13 14 18 21 qqqq <none> eeeeeeee <none>
33 code-golf  music 


29
プレフィックスコードですか?
情報理論では、「プレフィックスコード」とは、どのキーも別のキーのプレフィックスではない辞書です。言い換えれば、これは、文字列が他の文字列で始まらないことを意味します。 たとえば、{"9", "55"}はプレフィックスコードですが、そうで{"5", "9", "55"}はありません。 これの最大の利点は、エンコードされたテキストを区切り文字なしで書き留めることができ、一意に解読できることです。これは、常に最適なプレフィックスコードを生成するHuffmanコーディングなどの圧縮アルゴリズムに現れます。 タスクは簡単です。文字列のリストが与えられたら、それが有効なプレフィックスコードかどうかを判断します。 あなたの入力: 妥当な形式の文字列のリストになります。 印刷可能なASCII文字列のみが含まれます。 空の文字列は含まれません。 出力は、真/偽の値になります。有効なプレフィックスコードの場合はTruthy、そうでない場合はfalseyです。 真のテストケースを次に示します。 ["Hello", "World"] ["Code", "Golf", "Is", "Cool"] ["1", "2", "3", "4", "5"] ["This", "test", "case", "is", "true"] ["111", "010", "000", "1101", "1010", "1000", "0111", "0010", "1011", "0110", "11001", "00110", "10011", "11000", "00111", "10010"] いくつかの誤ったテストケースを次に示します。 ["4", "42"] ["1", "2", …

18
ピタゴラスのもう一方の足
ピタゴラスは戦争で足を膨らませました。それは切断されなければならず、彼は死にそうになったが、彼は乗り越えて完全に回復した。今、松葉杖で歩いて1年後、彼は義足を手に入れる特権を得ます!ただし、適合するものはいくつかありますが、どれですか? タスク ピタゴラストリプルの一方の足の長さである正の整数を入力として指定すると、もう一方の足のすべての可能性が出力されます。たとえば、最小のピタゴラストリプルは(3,4,5)で、長さ3と4の2本の脚と長さ5の斜辺を持つ三角形を形成します。 例 Leg:5 12 Leg:28 21 45 96 195 Leg:101 5100 Leg:1001 168 468 660 2880 3432 4080 5460 6468 10200 38532 45540 71568 501000 ルール 入力は単一の正の整数になりnます。 出力は、任意の順序、任意の区切り文字、任意のベース(このベースは一貫している必要があります)、オプションの開始ブレースと終了ブレース、およびオプションの末尾空白を使用できます。つまり、1 2 3、[1,2,3]、および1,11,111すべてこの出力仕様に合います。 あなたはnあなたの言語の制限の4番目のルートの4分の1より大きくなることは決してないと仮定するかもしれません(ライブラリを使わないで)。実際には、入力がこれまたは10,000のいずれか少ない方より少ないと仮定できます。 ピタゴラスがあなたを待っているので、コードをすばやく短く書いてください!
33 code-golf 

5
重力シミュレーター
ステートメント 2Dグリッドに落ちる一連のボールの静止画が表示されます。このグリッドは不変で壊れない壁に囲まれているため、すべてのアクションが壁に含まれています。あなたの仕事は、重力がすべての作業を行った後、シナリオの状態がどうなるかを決定することです。 グリッド内の要素 - 床、落下するボールの方向を変えません。 \ 右スライド、ボールのパスを1つ右に変更します。 / 左スライド、ボールのパスを1つ左に変更します。 o ボール。 ルール ボールが落ちる。 床とスライドは落ちません。 ボールがスライドを打って壁(\#または#/)を通過したり、床を横切ったりすると、スライドは床として機能します。 ボールが別のボールに当たった場合、ボールは1つのボールになりますが、両方のボールの合計までパワーを増やします。 (結合された)新しいボールは、通常どおりに動作し続けます。 ボールがそれ以上移動できなくなると、その力に置き換えられます。 ボールのパワーは常に最大9です。 入力 グリッドは、選択した言語で最も短い名前の文字列変数で指定されます。デフォルトではa、入力として使用します。受け取ったとおりの入力のサンプル: ##########\n# \ #\n#o #\n# - -\o #\n#/- \ #\n# \oo-/\#\n#-/ \ /#\n# \ \ #\n# /#\n########## 生成されたランダムグリッドの場合はhttps://repl.it/B1j3/2を使用します。代わりに生成されたページを使用します(広告なし、がらくたなし、入力と出力のみ) 注改行があります\n。入力を画面に印刷すると(チャレンジには不要)、次のように表示されます。安全なスペースに4つのパズルを並べましたが。 ########## ########## ########## ########## # \ # # o -/# # …

4
ASCIIを分割する
ASCIIと改行で95の印刷可能文字が与えられた場合、それを2つの等しい48文字グループ(以降、グループAおよびグループBと呼びます)に分けます。2つのグループ間で、選択した 1対1のマッピングを作成します(完全な裁量権があります)。言い換えれば、Aにマッピングするかもしれないaし、その逆もまた同様で、しかしAまたにマッピングするかもしれない>それはあなたがあなたのプログラムのために必要なものだ場合、およびその逆。 ASCIIを2つのグループに分割したら、各グループの文字のみを使用して、それぞれ2つのプログラムや関数を作成します。つまり、グループAの文字のみを使用する1つのプログラム/関数と、グループBの文字のみを使用する別のプログラム/関数を作成します。 これらのプログラムは、入力として1文字を受信できる必要があります。グループAの文字で書かれたプログラムは、入力がグループAの文字である場合は同じ文字を出力/返す必要があり、グループBの文字を受け取った場合はマップされたグループAの文字を返します。グループAプログラムは常にグループA文字を出力する必要があります。同様に、グループBプログラムは、グループBの文字である場合は同じ文字を出力し、入力がグループAの文字である場合はマップされたグループBの文字を出力する必要があります。 それはそれほど明確ではないかもしれないので、ここに例を示します。すべての大文字がグループAにあり、すべての小文字がグループBにあり、これらの文字の1対1マッピングが1対1であると選択した場合、次のようになります。サンプル入出力: プログラムA: Input Output A A D D a A q Q プログラムB: Input Output A a D d a a q q その他の規則: 2つのプログラムは同じ言語である必要はありません。 両方のプログラムまたは両方の機能である必要はありません。1つはプログラムであり、もう1つは関数である可能性があります。 それらは同じように機能する必要はなく、同じような長さである必要はありません。それらは上記の他のルールを満たしている必要があります。 はい、プログラムの1つだけが改行を使用でき、スペースを使用できるのは1つだけです(これは同じプログラムでも異なるプログラムでもかまいません)。 各プログラムで48文字すべてを使用する必要はありません。 通常の標準的な抜け穴は禁止されています。すべてのプログラムは自己完結型である必要があり、選択したマッピングを含むファイルはありません。 採点基準:code-golf。具体的には、2つのプログラムのテキストのバイトの合計。 次のように回答を投稿してください。 言語-#バイト+言語-#バイト=#バイト マッピングの明確な説明。複雑な場合は、次のようなチャートを使用します。 ABCDEFGHIJKLMNOPQRSTUVWXYZ (etc.) zyxwvutsrpqonmlkjihgfedcba (etc.) または、それを説明するだけで(最初の48個のマップから最後の48個のシーケンスに)、通常どおりに答えを続けることができます。

30
ボックスを開くのを手伝ってください
ASCIIアートボックスがあり、それを開くにはプログラムが必要です。 例 入力: ------- | | |_____| 出力: / / / / / / / | | |_____| 仕様 最初の行は-、少なくとも3 つのみで構成されます 中央の行は|スペースで始まり、次で終わります| すべての中央の行は同じになります 最後の行は|have _で始まり、aで終わる| すべての行は同じ長さになります ボックスを開く: それぞれ-を/昇順の行と位置に置き換えます。

3
Tiny Lisp、小さな通訳
Lispプログラマーは、Lispは非常に小さなプリミティブ操作のセットから構築できる強力な言語であることを自慢しています。と呼ばれる方言の通訳をゴルフで練習して、そのアイデアを実践しましょうtinylisp。 言語仕様 この仕様では、結果が「未定義」と記述されている条件は、インタープリターで何でもできます:クラッシュ、サイレントフェール、ランダムgobbldegookの生成、または期待どおりの動作。Python 3のリファレンス実装はこちらから入手できます。 構文 tinylispでのトークンは(、)、または括弧やスペースを除く一個の以上の印刷可能なASCII文字の任意の文字列。(つまり、次の正規表現:[()]|[^() ]+。)数字のみで構成されるトークンは、整数リテラルです。(先頭のゼロは大丈夫です。)非数字を含むすべてのトークンは、のようにも、数字に見える例、シンボルである123abc、3.14と-10。トークンを区切る場合を除き、すべての空白(少なくとも、ASCII文字32および10を含む)は無視されます。 tinylispプログラムは一連の式で構成されています。各式は、整数、記号、またはs式(リスト)のいずれかです。リストは、括弧で囲まれた0個以上の式で構成されます。アイテム間にセパレータは使用されません。式の例を次に示します。 4 tinylisp!! () (c b a) (q ((1 2)(3 4))) 整形式でない式(特に、括弧が一致しない式)は、未定義の動作をもたらします。(参照実装は、開いているかっこを自動的に閉じ、一致しない閉じたかっこで解析を停止します。) データ型 tinylispのデータ型は、整数、記号、およびリストです。組み込み関数とマクロも型と見なすことができますが、出力形式は未定義です。リストには、任意のタイプの値をいくつでも含めることができ、任意の深さにネストできます。整数は、少なくとも-2 ^ 31〜2 ^ 31-1でサポートされる必要があります。 空のリスト(()nilとも呼ばれる)と整数0は、論理的に偽と見なされる唯一の値です。他のすべての整数、空でないリスト、ビルトイン、およびすべてのシンボルは論理的に真です。 評価 プログラム内の式は順番に評価され、それぞれの結果はstdoutに送信されます(出力のフォーマットについては後で説明します)。 整数リテラルはそれ自体に評価されます。 空のリスト()はそれ自体に評価されます。 1つ以上の項目のリストは、最初の項目を評価し、それを関数またはマクロとして扱い、残りの項目を引数として呼び出します。アイテムが関数/マクロでない場合、動作は未定義です。 シンボルは名前として評価され、現在の関数でその名前にバインドされた値を提供します。名前が現在の関数で定義されていない場合、グローバルスコープでバインドされた値に評価されます。名前が現在のスコープまたはグローバルスコープで定義されていない場合、結果は未定義です(参照実装ではエラーメッセージが表示され、nilが返されます)。 組み込み関数とマクロ tinylispには7つの組み込み関数があります。関数は、いくつかの操作を適用して結果を返す前に、各引数を評価します。 c-cons [truct list]。値とリストの2つの引数を取り、リストの先頭に値を追加して取得した新しいリストを返します。 h-頭(車、Lisp用語では)。リストを取得し、リストの最初の項目を返します。nilが指定されている場合はnilを返します。 t-テール(Lisp用語ではcdr)。リストを取得し、最初のアイテム以外のすべてを含む新しいリストを返します。nilが指定されている場合はnilを返します。 s-引く。2つの整数を取り、最初のマイナス2番目を返します。 l- 未満。2つの整数を取ります。最初の値が2番目の値より小さい場合は1を返し、それ以外の場合は0を返します。 e-等しい。同じタイプの2つの値(整数、両方のリスト、または両方のシンボル)を取ります。2つが等しい(またはすべての要素で同一)場合は1を返し、そうでない場合は0を返します。組み込みの等価性のテストは未定義です(参照実装は期待どおりに機能します)。 v-評価。式を表す1つのリスト、整数、またはシンボルを取り、それを評価します。たとえば、行うこと(v (q (c a b)))は行うことと同じ(c a b)です。(v …

15
言葉のバランスをとる
このチャレンジはDailyProgrammer subredditに投稿されており、コードゴルフチャレンジの素晴らしい候補になると思いました。レターのバランスが取れているかどうかの判断は、バランス点からの距離とレターの価値に基づいています。文字の値は、アルファベットの1インデックス位置を取得するか、ASCII値から64を引くことで決定できます。さらに、文字の値には、バランスポイントからの距離が乗算されます。例を見てみましょうSTEAD: STEAD -> 19, 20, 5, 1, 4 ASCII values This balances at T, and I'll show you why! S T EAD -> 1*19 = 1*5 + 2*1 + 3*4 Each set of letters on either side sums to the same value, so T is the anchor. ただし、すべての単語のバランスが取れているわけではないことに注意してください。たとえばWRONG、どの構成でも単語のバランスが取れていません。また、単語は2つの文字の間ではなく、文字でバランスを取る必要があります。たとえばSAAS、2つAの中間に文字があった場合はバランスが取れますが、何もないためバランスが取れません。 タスク …
33 code-golf 

14
{カーリー番号};
難解なプログラミング言語Curlyでは、プログラムは中括弧{}とセミコロンのみで構成されます;。この謙虚なツールセットにもかかわらず、Curlyには任意の非負整数を表すことができるリテラルがあります。ただし、この形式は初心者にとっては読みにくいため、変換を行うためのコードを作成してみましょう。 数字の形式 カーリー番号は、次の規則に従って構成されます。 セミコロンを追加すると、番号に1が追加されます。 中括弧で囲まれた数値は4倍されます。 中括弧グループはネストできますが、連結できません。ブレースは適切に一致する必要があります。 中括弧のセットの外側のセミコロンは、前ではなく後でなければなりません。 解析のあいまいさを避けるため、数字は常に中括弧で始まる必要があります。 いくつかの例: {;;} 2*4 = 8 {{;};}; (1*4+1)*4+1 = 21 {};;; 0*4+3 = 3 (ルール5では、0から3までの数字は中括弧の空のペアで始まる必要があることに注意してください。) そして、いくつかの無効な例: {{;}{;;}} Curly brace groups side-by-side, not nested {;}} Unmatched brace {;{;}} Semicolon before curly-brace group ;;; Number does not start with curly brace カーリー数のBNF文法は次のとおりです。 <number> ::= "{" …

11
自己修正による乗算
...少なくとも「自己修正」の定義については。 タスク この課題では、あなたのタスクは、3つの文字列を記述することでA、BそしてCその次の性質を満たします。 文字列のB長さは少なくとも1です。 すべてn ≥ 0について、文字列は、選択したプログラミング言語の有効なプログラム(完全に実行可能なプログラムまたは関数の定義を意味します)です。これは、文字列のように、上付き文字は、繰り返しを表し、、、各プログラムは、一つの入力として文字列、および出力として戻って1つの文字列を取るなど。ABnCACABCABBCABBBC いずれm, n ≥ 0にせよ、プログラムが入力付きで実行される場合、それは戻ります。この形式ではない入力の場合、プログラムはクラッシュを含む何でもできます。ABmCABnCABm*n+1C 形式のいくつかの例program(input) -> output: AC(AC) -> ABC ABC(AC) -> ABC ABBBBBC(AC) -> ABC AC(ABC) -> ABC AC(ABBBBC) -> ABC ABC(ABC) -> ABBC ABBC(ABC) -> ABBBC ABBBBC(ABBBC) -> ABBBBBBBBBBBBBC ABBBC(ABBBBBBC) -> ABBBBBBBBBBBBBBBBBBBC ルールとスコアリング あなたのスコアは、との合計の長さでA、Cスコアが低いほど良くなります。Bスコアにはカウントされませんが、最初の例AとC同様に作成する必要があることに注意してください。 標準の抜け穴は許可されていません。プログラムは、直接または間接的に独自のソースコードにアクセスすることはできません(入力として与えられた場合を除く)。あなたは、文字列を識別するために必要とされているA、BとCいくつかの方法で、あなたの答えであり、あなたのソリューションを説明することを奨励しました。

11
この質問には浮き沈みがあります
入力は次の文字で構成されます。 ^:1つ上へ v:1つ下に行く ▲またはk:2つ上に移動します ▼またはj:2つ下に移動します たとえば、次の入力: ^^▲^v▼▲^^v 次の出力が生成されます。 ^ ^ ^ v ▲ v ▲ ^ ▼ ^ などのカーソルを移動するエスケープシーケンス\e[Bは許可されません。スペースと改行を使用して出力を生成する必要があります。 ここにさらにいくつかのテストケースがあります。 ▲v^v^v^v^v^v^v^v▲ ▲ ▲ ^ ^ ^ ^ ^ ^ ^ v v v v v v v v ^^^^^^^▲▲▲▼▼▼vvvvvv ▲ ▲ ▼ ▲ ▼ ^ ▼ ^ v ^ v …

22
トランプはスターマンを止めるためにあなたの助けが必要です!
星から来た男が地球にやってきた!幸いなことに、米国大統領のドナルドトランプは、無限の側面で死ぬ。このダイを使用して、彼は、Podunkの市長であるあなたが侵入者を止めるために誰を送るべきかを決定するために使用しなければならない数字を思い起こすことができます!しかし、注意してください、あなたはあなたのカエルの背中に限られた量のバイトしか送ることができません! ユーザー入力(正の整数)が与えられると、番号が含まれるカテゴリに応じて文字列を返す必要があります。 数値がフィボナッチ数の場合、Nessを出力する必要があります。 番号がある場合はルーカスの数は、出力する必要がありルーカス。 数値がルーカス数とフィボナッチ数の両方である場合、Travisを出力する必要があります。 数がある場合もない AA ルーカス番号やフィボナッチ数は、出力する必要がありピッピ。 例 テストケースは次のとおりです。 1 =>トラビス 2 =>トラビス 3 =>トラビス 4 =>ルーカス 5 =>ネス 6 =>ピッピ 7 =>ルーカス 8 =>ネス 610 =>ネス 722 =>ピッピ 843 =>ルーカス ルール これはcode-golfで、バイト単位の最短回答が勝ちです。 プログラムは、完全なプログラムまたは(n匿名)関数である場合があります。 ボーナス カエルがトランプ大統領にデータをより速く届けるのを助けるために使用できるいくつかのボーナスがあります: 以下のための-15バイト:入力番号がある場合は2016、あなたを出力しなければならないTrump、彼は彼の大統領職のピークであるとして。

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