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

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

13
星を数えます
あなたの目的は、マルチラインASCIIを | v | * * * * * * * そして、スター以外のすべてのもの([any-width]のスペースを除く)と、含まれているスターの数と現在含まれているスターの数を含む配列があります。したがって、私の例の出力は次のようになります。 ['* * * * * * * * * *',7,10] または ["* * *\n* * * *\n * * *", 7, 10] コード言語が何をするかに応じて。 これはコードゴルフの挑戦なので、最短バイトが勝ちます!
8 code-golf 

17
他の文字列での文字列の出現を確認します
チャレンジ きっとあなたはタイトルを読んで、あなたの担当者を養成するためにやって来て、その子供たちのことを考えていましたが、もう一度考えてください!別の文字列の出現を数えるには、最短のコードで互いに挑戦し合う必要があります。たとえば、次の入力があるとします。 aaaabbbbsssffhd 文字列として、文字列 s 出力する必要があります 3 ルール あなたが笑顔で「ねえ、私は----を使います」と言う直前にこれを読んでください: 外部ライブラリや言語のAPIを使用しないでください。手動で実装する必要があります。つまり、言語の組み込み関数またはメソッドを使用して出現回数をカウントすることはできません。 ファイルI / Oなし サーバー、ウェブサイトなどに接続しない `aba`の場合、` aba`で始まり、最後の3文字を読んだ場合も `aba`であれば、1つだけカウントします* @ProgramFOXに感謝します(最後のルール)! * ヒント:発生をカウントするときに、カウントしたものを削除して、このルールに従わないようにすることができます 最後の2つのルールはルールベンダーのためだけのものだと思います! 受賞基準 前述のように、勝者は使用されるバイト数が少ないコードです。当選者は5日後に発表されます(2014年6月15日)。 私の小さな答え ここでは、それは私のことを前提としてC ++の答え、だli変数がで出現箇所を確認するための文字列を保持しており、l中を探すための文字列ですf。 未ゴルフ int c = 0; while (li.find(lf) != string::npos) { int p = li.find(lf); int l = p + lf.length() - 1; for (p …

7
有向グラフの最終サイクルを数える
仕事 単純な有向グラフの最終サイクル数を正確にカウントするプログラムまたは関数を、選択した言語で作成する必要があります。 この特定の種類の有向グラフは、n個の整数の配列として表され、それぞれが1からn(または言語が0から数える場合は0からn-1)の間で独立して選択されたランダムな値を持ちます。グラフは、1つのインデックス(ノード)から、開始インデックスで見つかった値と一致するインデックスを指す矢印と考えることができます。 関数は、最大n = 1024またはそれより小さい整数サイズの大きなグラフを受け入れることができる必要があります。 例 n = 10について次のグラフを考えてみます。 [9, 7, 8, 10, 2, 6, 3, 10, 6, 8] インデックス1には9が含まれているため、インデックス1からインデックス9への矢印があります。インデックス9には6が含まれているため、矢印9-> 6があります。インデックス6には6が含まれています。 インデックス2には7が含まれます。インデックス7には3が含まれます。インデックス3には8が含まれます。インデックス8には10が含まれます。インデックス10には8が含まれるため、2番目のターミナルサイクルになります(8-> 10-> 8-> 10など)。 )。 インデックス4->10。2番目のターミナルサイクルに入ります。同様に、インデックス5-> 2-> 7-> 3->8。これも2番目のターミナルサイクルの一部です。 この時点で、すべてのインデックス(ノード)がチェックされ、すべてのパスが追跡され、2つの固有のターミナルサイクルが識別されています。したがって、この有向グラフの最終サイクルの数であるため、関数は2を返す必要があります。 得点 最小のコードを目指しますが、ターミナルサイクルが正しくカウントされることを確認してください。1週間の勝利後の最短コード。 テストケース コードの正しさを確認するためのテストケースをいくつか示します。言語が0から始まる配列インデックスをカウントする場合は、範囲外のインデックスを防ぐために、各配列要素の値から1を差し引く必要があります。 n = 32、5サイクル: [8, 28, 14, 8, 2, 1, 13, 15, 30, 17, 9, …

6
あなたの木を修正してください!
情報学では、多くの場合、さまざまな形式や表現で木を使用します。バイナリツリーをシリアル化する3つの主要な方法は、プレフィックス、インフィックス、ポストフィックス表記です。たとえば、次のバイナリツリー: (出典:オランダ情報学のオリンピック、決勝、2012/13) プレフィックス表記としてabrxdbe、rbxabdeインフィックスとして、ポストフィックスとしてとして表すことができますrxbbeda。 この場合、中置記法で表現された完全なバイナリツリーに直面します。あなたの仕事は、このツリーをプレフィックス表記に変換することです。あなたの入力 STDINには2になりますnは任意の整数のための改行文字で終了-1小文字のアルファベット文字、AZおよびこれ以上、nは、その結果1≤ N ≤16したがって、あなたが取得する文字の最大数は65535です。同じ方法でツリーをstdoutに出力しますが、その後、プレフィックス形式で出力します。 これはコードゴルフなので、バイト数で数えた最短のコードが勝ちます。投票はタイブレーカーとして機能し、それらがタイアップする場合は、提出日時。

3
重力制御
あなたの仕事は、惑星に落下しているオブジェクトの総目的地を見つけることです、あなたはこのような入力を得るでしょう: 7 ...#... ....... #..O..# ....... ...#... ....... ....... ここで、Oは惑星で、#はオブジェクトです。惑星は、基本的な方向(ニュース)からオブジェクトを引き付けます。あなたは出力する必要があります: # #O# # つまり、目的地に到達した後のオブジェクト。 入力として与えられる最初の数は、grid(nxn)の長さです。上記の例では7です。 オブジェクトは常に最短方向に移動する必要があります(使用できる方向は水平方向と垂直方向のみです。オブジェクトは斜​​めに移動できません)。 オブジェクトが2つの方向から等距離にある場合、時計回りの方向に移動する必要があります。 ..# ... O.. この側に到達します: ... ... O#. オブジェクトが惑星に衝突すると、停止します。別のオブジェクトと衝突すると、それらは1つのオブジェクトになります。 4 .#.. #... .... .O.. になるでしょう: .... .... .#.. .O.. 最後の例: 6 ..#... .#.... ...... .#O... ....#. ...... 出力: ...... ...... ..#... .#O#.. ...... ...... …
8 code-golf 

5
DVORAKキーボードレイアウト
ここに興味深い課題があります... DVORAKキーボードレイアウトで入力しているかのように、実行時に入力を模倣出力に変換できるようにするよりも、ゴルフコードを求めています。 目的は、US Simplified Dvorakキーボード(US:SDK)を模倣することです 比較すると、こちらが標準のUS QWERTYレイアウトです。 キーボードエミュレーションは、大文字と小文字の両方とシフトされたキーの両方で機能する必要があります。たとえば、qキーボードの(シフトされていない)キーをタップすると、Dvorakコードが'画面上の文字をポップするはずです。c(シフトされていない)ボタンをタップするとj、C(シフトされていない)の応答が返されるはずです。シフトされた)がJシフトされます... もちろん、上の図の白いキーだけに集中しています。タブ、キャップ、その他の灰色のキーは通常どおり機能するはずです... 質問は?とりあえず?良い... 既にレイアウトがエンコードされている外部リソースは許可しません。レイアウトをエンコードできるファイルを持ち込みません。コードはQWERTY INPUT -> (DVORAK RE-CODING) -> DVORAK OUTPUT自然のものでなければなりません。理論的な、または「このプログラムはQWERTY入力を受け取り、DVORAKで再コード化します。これはプログラムです。」のような愚かなEsolangはありません。またはそのようながらくた...この挑戦を真剣に受け止めます...それでBrainfuckコーダー、私はあなたを歓迎します これは文字列変換プログラムではないことに注意してください。QWERTYキーを押すたびに、対応するDVORAK文字が出力される必要があります... 最短のコードが勝ちます...

6
ウォーキングポイントを並べ替える最短のコード
課題は、ポイントのリストを指定して、それらがこの順序で接続されている場合、交差しないように並べ替えることです。 入力フォーマット(標準入力から読み込み): X Y 1 2 3 4 5 6 ... 出力は入力と同じでなければなりませんが、ソートされています。 ルール: どこからでも始められます。 最後のポイントは最初のポイントと同じでなければならず、閉回路を形成します。 デカルトグリッドを考慮して行う必要があります。 入力ポイントがすべて1本の線上にあるとは限りません。 各線の端点は交差として数えられません。 さらにヘルプが必要な場合:

3
周波数のリストから全体の期間を見つける
http://xkcd.com/1331/に触発されました このxkcdコミックには、すべて異なる頻度で点滅するgifがいくつかあります。すべてが1つのGIFであった場合、その期間はどうなるか知りたいです。個々の頻度を表す数値のリストを指定して、GIF全体の周期を出力します。 正式な定義 入力: N f1 f2 . . . fN 出力: P ここで、Nは周波数の数、fiはi番目の周波数、Pは総GIFの結果の周期です。 (\ nの代わりに)任意の区切り文字を使用することを選択できます。必要に応じてNを除外することもできます。これは、区切り文字の数によって推測されます。 いくつかの詳細 周波数は、入力として提供される数値の最も近い倍精度浮動小数点表現です。 出力される周期は、最も近い整数に丸められた(0.5で切り上げられた)64ビット符号なし整数です。2 ^ 64-1より大きい周期を生成する入力は、未定義の動作と見なされます。 同様に、0以下の入力は未定義の動作と見なされます。 勝利条件 ゴルフをコード化すると、最短のコードが勝ちます
8 code-golf 

6
車が限られた量のガスでルートを迂回できるかどうかを判断する
関数をサポートするプログラミング言語を使用して、関数を持っている is_enough(strArr) そのテイクstrArr以下の要素からなる配列であろう。 N これは循環ルートのガソリンスタンドの数になります 後続の各要素は文字列g:cに なります g そのガソリンスタンドでのガロン単位のガス量であり、 c 次のガソリンスタンドに行くのに必要なガロンのガスの量になります。 たとえば、次のようにstrArrなります。 ["4","3:1","2:2","1:2","0:1"]. あなたの目標は、ルート全体を1度移動できる開始ガソリンスタンドのインデックスを返すことです。それ以外の場合は、文字列"impossible"を返します。 上記の例では4つのガソリンスタンドがあり、次の理由により、プログラムは文字列「1」を返す必要があります。 駅から始まる1あなたが受け取る3ガスのガロンをして過ごす1を次のステーションになって。 次に、あなたが持っている2ガロン+ 2次の駅でより多くを、あなたが過ごす2をあなたは持っているので、2サード駅に着くときガロン。 その後、3つありますが、最後の駅まで2つ費やします。 最終ステーションでは0ガロンを受け取り、最終ガロンを出発点に到達させます。 他のガソリンスタンドから出発すると、ルートを回避できなくなるため、答えは"1"です。 開始可能なガソリンスタンドが複数ある場合は、(ガソリンスタンドの)最小のインデックスを返します。Nになります>= 2。 正しいサンプル出力: Input: ["4","1:1","2:2","1:2","0:1"] Output: "impossible" Input: ["4","0:1","2:2","1:2","3:1"] Output: "4" 勝者は長くなりますが、最短のコードを使用する人になります。

9
信頼できないデータストリーム
あなたの課題は、データ送信ストリームを模倣するプログラムをゴルフすることです。プログラムはstdinから入力を読み取り、それを直接stdoutに出力する必要があります。問題をより興味深いものにするために、出力ストリームは「不完全」であり、いくつかの要件を満たす必要があります。 各文字がアスキーコード+1でシフトされる可能性は10%あるはずです(たとえば、「a」は「b」になり、「9」は「:」になります)、など。 入力と出力は、印刷可能なASCII値(「!」から「〜」、10進数の33から10進数の126まで)のみをカバーする必要があります。ランダム+1が「〜」(10進数の126)で発生した場合、「!」代わりに(10進数33)を出力する必要があります。 3つの文字がランダムに連続してシフトされている場合、プログラムは「エラーコード4625:回復不能なエラーです。システム管理者に連絡してください」(末尾の改行はオプション)、実行を停止します。 問題を単純化するために、他にいくつかの基準があります。 入力は常に有効であると想定できます。つまり、値には '!'のみが含まれます。「〜」を介して。 プログラムは、3つの文字がランダムに連続してシフトされるまで続行されます。EOFが発生しないと想定しても安全です。 ランダム性は実行ごとに異なる必要があります。実行ごとに一意の結果を取得するために乱数ジェネレータをシードする必要がある場合は、コードでシードする必要があります。 関数ではなく、プログラムを記述する必要があります。 stdinから入力を受け取り、出力をstdoutに書き込む必要があります。 外部のライブラリやリソースを使用することはできません。 あなたのコードは自由に利用でき、動作するイントレプリターまたはコンパイラーを持っている必要があります。 標準のコードゴルフ規則が適用されます。勝者は、2週間後(2014年2月20日木曜日)に最短のプログラムを投稿した人です。
8 code-golf 

8
スペイン語の動詞の活用
説明 ほら!スペイン語をとらないあなたのために、動詞は行動をする人に基づいて活用されます。これがチャートです: English Spanish I Yo You Tú He Él She Ella You (formal) Usted We all Nosotros You all Vosotros They (masculine, plural) Ellos They (feminine, plural) Ellas You (plural) Ustedes スペインでは、すべての動詞の末尾ar、erまたはir。次に、別の役立つグラフを示します。 Ar Er Ir Yo o o o Tú as es es Él a e e Ella a …

8
フィボナッチ分布バリデーター
関連: こんにちは世界!!! フィボナッチ分布 特定の入力が次の仕様を満たす場合はTrueを返し、そうでない場合はFalseを返すプログラムを作成します。 入力内の数字(0〜9)の数がフィボナッチ数と一致します。 入力内の非数値文字の数!(0-9)は、数値文字の数の直前のフィボナッチ数と一致します。 追加ルール: プログラムは、OEISに従って適切なフィボナッチ数列を使用する必要があります。つまり、フィボナッチ数列は 0, 1, 1, 2, ... 数値または非数値のカウントが1の場合、以下が発生する必要があります。 数値1:0 または 1の非数値カウントはTrueとして処理する必要があります-他のすべてはFalseです。 非数値1:1 または 2の数値カウントはTrueとして処理する必要があります-他のすべてはFalseです。 入力は任意に取得できますが、プログラムは任意のテキストを処理できる必要があります。 True / Falseは大文字と小文字を区別せず、1/0またはT / Fで置き換えることができます。 最大2つのフィボナッチ数のみをハードコーディングできます。 出力が可能にのみ FALSE TRUE /または1/0またはT / Fなります。生成された追加のテキストまたは目に見えるエラーは受け入れられません。

4
このサイトでまだ誰も受け取っていないバッジのリストを取得します
誰もまだ受け取っていないバッジのリストを取得するコードを作成し(たとえば、このウェブサイトのAPI for Badgeを使用して)、そのようなバッジのソートされたリストを、それぞれの後に改行を付けて出力します。 出力例(このチャレンジをいつ行うかによって、より小さくなる場合があります): Archaeologist Caucus Constituent Copy Editor Deputy Electorate Epic Generalist Hacker Legendary Marshal Outspoken Research Assistant Sheriff Steward Strunk & White Tenacious Unsung Hero 最小のコードが優先されます。

9
文字列内で最大の連続する素数を見つける
公平に言えば、これはStackExchangeの質問に基づいていますが、良い質問です。 挑戦はかなり簡単です: 一連の数字を取る 文字列内の最大の連続する素数を見つけて出力します 得点: 最も少ない数のキャラクターが勝利します。 ビクターはゴルフスクリプトのエントリーになる可能性がありますが、私たちはそれに対してそれを保持することはありません。 私が実際に緑色のボタンをチェックしていないことに気付いたときに、当選者に授与されます。 仮定: 文字列は数字のみです 文字列に文字が含まれている場合、動作が未定義である可能性があります 文字列に少なくとも1つの素数が含まれています 文字列に1つの有効な素数が含まれていない場合、動作が未定義である可能性があります 速度は制約ではありません 高速なアルゴリズムよりも短い素数アルゴリズムを使用します。 エントリが最終的に終了する場合、それは問題ありません。宇宙の熱死の前にそれが証明可能であることを確認してください。 文字列の長さは15文字未満と想定できます 例えば: >> Input: 3571 << Output: 3571 >> Input: 123 << Output: 23 >> Input: 1236503 << Output: 236503 >> Input: 46462 << Output: 2 >> Input: 4684 << Output: ValueError: max() arg …
8 code-golf 

7
出力:カレンダー月(ネイティブカレンダー生成関数なし)
YYYYMM形式で月と年を受け取ったら、その年の対応する暦月の出力を生成します。 たとえば、入力201312は次の出力を生成する必要があります。 Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 唯一の秘訣は、ネイティブカレンダー生成関数がないことです... Linuxクローン、「cal」関数はありません...ムアハハハハ! PS:カレンダーは、左端の月曜日から開始する必要があります。これは、出力が「cal」関数のようであることを保証しますが、日曜日を左端とする「cal」のように出力しないようにするためです。 .. 最小のコードサイズが優先されます。

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