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

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

22
タイトルの大文字化の経験則
このサイトによると、米国政府印刷局スタイルマニュアルが推奨する一般的なルールは a、an、the、at、by、for、in、of、on、to、up、and、as、but、or、およびnorを除く、出版物および文書のタイトルのすべての単語を大文字にします。 スタイルマニュアルでそのような推奨事項を見つけることができないため、これは真実ではないかもしれませんが、とにかくこのルールを使用しましょう。 チャレンジ スペースで区切られた小文字の単語で構成される入力文字列が与えられた場合、次の規則に従って文字列の大文字化を出力します 最初と最後の単語は大文字です。 a、an、the、at、by、for、in、of、on、to、up、and、as、but、or、およびnorを除くすべての他の単語は大文字です。 入力文字列は、少なくとも一つの単語が含まれ、各単語から少なくとも一つの文字と文字のみが含まれているaとz。 これはコードゴルフのチャレンジなので、選択した言語でできるだけ少ないバイトを使用するようにしてください。タスクを完了するための完全なプログラムまたは関数を作成できます。 テストケース "the rule of thumb for title capitalization" -> "The Rule of Thumb for Title Capitalization" "programming puzzles and code golf" -> "Programming Puzzles and Code Golf" "the many uses of the letter a" -> "The Many Uses of the Letter …
30 code-golf  string 

20
見つけて回転
タスク これは簡単な挑戦です。入力は、数字0123456789とハッシュのみを含む単一の空ではない文字列#です。これには、非負の整数をエンコードし、文字列の終わりを囲む可能性のある1桁の数字と、少なくとも1桁が含まれます#。整数には先行ゼロが含まれる場合があります。たとえば、##44##、013####および23###1有効な入力、しばらくしている###、0099と#4#4はありません。 あなたの仕事はn、文字列から整数を抽出し、文字列をn右に回転させて出力することです。 例 入力#1##は右に1ステップ回転する必要があるため、正しい出力は##1#です。 #026###先頭の0は無視されるため、入力は26ステップ右に回転する必要があります。正しい出力は26####0です。 入力1####2には最後に整数21がラップされているため、21ステップ右に回転する必要があります。正しい出力は##21##です。 ルールとスコアリング 完全なプログラムまたは関数を作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 あなたは、その数があなたの言語のn標準的なintタイプに適合すると仮定することができます。逆に、その標準int型が任意精度の整数を実装する場合、(理論上)任意の大きなをサポートする必要がありますn。 テストケース #1## -> ##1# ##4## -> #4### 1####1 -> ####11 1####2 -> ##21## #026### -> 26####0 #000### -> #000### ###82399 -> ##82399# 51379#97 -> #9751379 #98##### -> ###98### #######4## -> #4######## 60752#1183 -> 8360752#11 ####99366800## -> 366800######99 ########9##### -> ###9########## …

30
平均ビット:平均的な課題
整数N> = 1の場合、0からN-1の整数の平均ビット数を出力します 仕様 出力は、0からN-1までの各整数のバイナリ表現のビット数の合計をNで割って計算できます。 整数のバイナリ表現には、このコンテキストでは先行ゼロがありません。ただし、ゼロはバイナリで0として表されます。 出力は、少なくとも7つの有効数字まで正確でなければなりません。 例 N = 6 0: 0 : 1 bit 1: 1 : 1 bit 2: 10 : 2 bits 3: 11 : 2 bits 4: 100 : 3 bits 5: 101 : 3 bits 平均ビット数=(1 + 1 + 2 + 2 + 3 …

11
この素敵なアスキーアートのフレーム
前書き 素敵な写真には素敵なフレームが必要だということは誰もが認めていると思います。しかし、このサイトでのASCII-Artに関するほとんどの課題は、生の画像が必要なだけで、保存については気にしません。 ASCIIアートをいくつか取り、それを素敵なフレームで囲む​​プログラムがあったらいいと思いませんか? チャレンジ 入力としてASCIIアートを受け取り、素敵なフレームに囲まれて出力するプログラムを作成します。 例: ***** *** * *** ***** になる ╔=======╗ ║*****║ ║***║ ║*║ ║***║ ║*****║ ╚=======╝ フレームには、例とまったく同じ文字を使用する必要があります。 ═ ║ ╔ ╗ ╚ ╝ フレームの上部と下部は、入力の最初の行の前と最後の行の後に挿入されます。 フレームの左部分と権利部分には、入力の最も広い行に正確に1スペースのパディングが必要です。 出力に先頭または末尾の空白がない場合があります。末尾の改行のみが許可されます。 入力に不要な先頭の空白がないと仮定できます。 入力のどの行にも末尾の空白がないと仮定できます。 空の入力を処理する必要はありません。 入力には、印刷可能なASCII文字と改行のみが含まれます。 ルール 機能または完全なプログラムが許可されます。 入出力のデフォルト規則。 標準の抜け穴が適用されます。 これはcode-golfなので、バイト数が最も少なくなります。Tiebreakerは以前の提出です。 ハッピーコーディング! このサイトでのチャレンジで作成されたすばらしいASCII-Artを使用して、プログラムへの入力として、素敵なフレームで表示することを強くお勧めします!

17
範囲を修復する
いくつかがに置き換えられた正の整数のリストの入力が与えられた場合、置き換えられて0変更された欠損数を含むリストを出力します0。 入力リストの特性: リストの長さは常に少なくとも2です。 入力リストをとして定義しa、「元のリスト」(つまり、番号が0s に置き換えられる前のリスト)を定義しますb。いずれの場合もn、またはのa[n]いずれb[n]か0です。 いずれの場合もn、またはのb[n]いずれb[n-1] + 1かb[n-1] - 1です。つまり、の数値bは常に1、以前のインデックスから各インデックスごとに変化します。もちろん、最初の要素はこの規則を免除されています。 ゼロのすべての実行a(つまり、連続した要素がに置き換えられます 0)xに対して、実行の開始のインデックスとy 終了を表すa[x-1]to a[y+1]は、常に増加のみまたは減少のみのいずれかになります。したがって、ゼロを埋める方法は1つしかありません。 これは、配列の最初の要素も最後の要素もゼロにできないことも意味します。 簡単に言えば、ゼロの連続を埋めるには、前の数字から次の数字までの範囲に置き換えるだけです。たとえば、次の入力 1 2 0 0 0 6 7 出力する必要があります 1 2 3 4 5 6 7 これはcode-golfであるため、バイト単位の最短コードが優先されます。 テストケース: In Out ----------------------------------------------------- 1 0 0 0 5 6 0 4 0 0 1 | 1 2 …

30
Takewhileを実装する
紹介とクレジット 今日は派手なプレリュードなし:を実装してくださいtakewhile。 これのバリエーション(非自明なデータ構造)は、大学の関数型プログラミングコースでの課題でした。この課題は現在閉鎖されており、クラスで議論されており、ここに投稿する教授の許可があります(明示的に尋ねました)。 仕様 入力 入力は、正の整数のリスト(または言語の同等の概念)になります。 出力 出力は、正の整数のリスト(または言語の同等の概念)である必要があります。 何をすべきか? あなたのタスクは、takewhile考慮中の数が偶数であるという述語を使用して実装することです(言語組み込みが許可されます)(テイクタイムに焦点を合わせるため)。 したがって、リストを最初から最後まで反復し、条件が(偶数)である間に出力リストにコピーし、条件を満たさない要素にヒットするとすぐに、操作と出力を中止します。 (ステップバイステップの例を以下に示します)。この高次機能は、takeWhile(takewhile)とも呼ばれます。 潜在的なコーナーケース 入力リストに比べて出力リストの順序は、例えば、変更することはできません[14,42,2]になってないかもしれません[42,14]。 空のリストは有効な入出力です。 誰が勝ちますか? これはコードゴルフなので、バイト単位の最短回答が勝ちです! もちろん、標準ルールが適用されます。 テストベクター [14, 42, 2324, 97090, 4080622, 171480372] -> [14, 42, 2324, 97090, 4080622, 171480372] [42, 14, 42, 2324] -> [42, 14, 42, 2324] [7,14,42] -> [] [] -> [] [171480372, 13, 14, …

27
3つの入力整数の差
入力として3つの整数x、y、およびzを受け取る関数diffを実装します。これらの数値の1つを別の数値から引くと3番目の数値が得られるかどうかを返します。 Test cases: diff(5, 3, 2) yields True because 5 - 3 = 2 diff(2, 3, 5) yields True because 5 - 3 = 2 diff(2, 5, 3) yields True because 5 - 3 = 2 diff(-2, 3, 5) yields True because 3 - 5 is -2 diff(-5, -3, -2) …

30
みなさん、カウントアップ!
前書き 奇妙に聞こえるかもしれませんが、から1までカウントするためのチャレンジは1つもありませんn。 これは同じことではありません。その1つは(閉じた)十分に説明されていない挑戦です。 これは同じことではありません。それは無期限にカウントアップすることです。 チャレンジ から1までのすべての整数を出力するプログラムまたは関数を作成しnます。 ルール nどんな方法でも手に入れることができます。 これnは常に正の整数であると想定できます。 n任意のベースを取得できますが、常に10進数で出力する必要があります。 出力は、にない文字(またはパターン)で区切る必要があります0123456789。10進数以外の先頭または末尾の文字を使用できます(たとえば、などの配列を使用する場合[1, 2, 3, 4, 5, 6])。 標準の抜け穴は拒否されます。 最短の言語ではなく、各言語で最短のアプローチを見つけたいので、私は答えを受け入れません。 この編集後に回答を更新する必要があります。最後の編集の前に投稿された回答は、標準の抜け穴に関する変更ルールに準拠する必要があります(拒否したくありませんでしたが、コミュニティをroめたくありませんでした。私はそれらを否定しました)。 デート後の任意の言語バージョン(または言語)を使用できます。この課題のためだけに作成された言語または言語バージョンは使用できません。 ボーナス 20% プログラムは、少なくとも18446744073709551615(2^64-1)までカウントできる必要があります。たとえば、新しいデータ型が大きな整数をサポートする唯一の方法である場合、それを構築する必要があります。あなたの言語が最大2 ^ 64-1までの巨大な整数をサポートする方法を持っていない場合、代わりにその特定の言語の上限をサポートする必要があります。 編集:制限をから2^64に変更し2^64-1て、より多くの回答を許可しました。 編集:このチャレンジにはあまり関心がなかったので、2 ^ 64-1ルールをボーナスにしました。回答が2 ^ 64-1をサポートしている場合、ボーナスを含めるように編集できます。また、短い場合は、サポートしていない回答を投稿できます。

25
はしご上のロボット
バックグラウンド 壁にはしごがあり、それを登ることができる遠隔操作ロボットがあります。ロボットに3つの異なるコマンドを送信できます。 UP:ロボットは1ステップ上に移動します。それが最高のステップにあった場合、それはつまずき、倒れ、爆発します。 DOWN:ロボットは下に1歩進みます。それが最下段にあった場合、何も起こりません。 RESET:ロボットは最下段に戻ります。 一連のコマンドを送信することもでき、ロボットはそれらを1つずつ実行します。あなたの仕事は、その動きを予測することです。 入力 あなたの入力は正の整数であるN梯子のステップの数を表すと、非空の文字列Cの上にUDR私がロボットに送信したコマンドを表します、。あなたはそれを仮定することができN < 1000ます。ロボットは、はしごの最下段で初期化されます。 出力 ある時点で、ロボットが最高のステップを乗り越えて爆発することが保証されています。出力は、これが発生する前に実行するコマンドの数です。 例 入力N = 4を考慮し、C = "UDDUURUUUUUUUDDDD" で示されるロボットは、@次のように4ステップの梯子に沿って移動します。 |-| |-| |-| |-| |-| |-| |-| |-| |-| |@| |-|| |-| |-| |-| |-| |-| |@| |-| |-| |@| |-| |-|| |-| |@| |-| |-| |@| |-| |-| |@| |-| …

28
バイナリを交互のサブシーケンスに分解します
これは、触発された問題13 -非繰り返しバイナリのHP CodeWarsの最近の競争を。 ランダムな10進数を考えてみましょう。 727429805944311 そしてそのバイナリ表現を見てください: 10100101011001011111110011001011101010110111110111 次に、そのバイナリ表現を、数字0と1交互のサブシーケンスに分割します。 1010 010101 10 0101 1 1 1 1 1 10 01 10 0101 1 1010101 101 1 1 1 101 1 1 そして、各サブシーケンスを10進数に変換します。 10 21 2 5 1 1 1 1 1 2 1 2 5 1 85 5 1 1 1 …

30
サブシーケンス置換
ほとんどの言語には、指定された部分文字列のすべての出現を文字列で検索し、それらを別の部分文字列に置き換える組み込み機能が付属しています。この概念を(必ずしも連続的ではない)サブシーケンスに一般化する言語は知りません。それがこの挑戦におけるあなたの仕事です。 入力は3つの文字列A、BおよびCで構成されます。ここでBおよびCは同じ長さであることが保証されています。のBサブシーケンスとして表示される場合は、Aに置き換える必要がありCます。以下に簡単な例を示します。 A: abcdefghijklmnopqrstuvwxyz B: ghost C: 12345 次のように処理されます。 abcdefghijklmnopqrstuvwxyz || | || abcdef12ijklmn3pqr45uvwxyz Bサブシーケンスとして検索する方法がいくつかある場合は、左端のものを貪欲に置き換える必要があります。 A: abcdeedcba B: ada C: BOB Result: BbcOeedcbB and NOT: BbcdeeOcbB B複数のばらばらの場所で見つかった場合も同様です。 A: abcdeedcbaabcde B: ed C: 12 Result: abcd1e2cbaabcde and NOT: abcd112cbaabc2e (or similar) Bがに表示されない場合はA、Aそのまま出力する必要があります。 ルール 上述したように、3つの文字列を取りA、BそしてC入力などとの一番左の発生を置き換えるBにサブシーケンスとしてA持つCいかなるがある場合は、。 プログラムまたは関数を作成し、STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を取得し、STDOUT(または最も近い代替)、関数の戻り値または関数(out)パラメーターを介して結果を出力できます。 3つの文字列は、回答で指定する必要がある一貫した順序で取得できます。あなたはそれを仮定し、同じ長さBをC持つことができます。すべての文字列には英数字のみが含まれます。 標準のコードゴルフ規則が適用されます。 テストケース 各テストケースは4行AでB、:C、、その後に結果が続きます。 abcdefghijklmnopqrstuvwxyz ghost …

24
あなたが見るものを言う
「Look and say」または「Say what you see」シーケンスは、それぞれが最後を説明する一連の数字です。 1 11 (one one) 21 (two ones) 1211 (one two, one one) 111221 (one one, one two, two ones) 312211 (three ones, two twos, one one) など... https://oeis.org/A005150 とにかく、これは2つの引数、初期数と反復回数を取るプログラムを作成するための通常のコードゴルフチャレンジ(最小バイト数が勝つ)です。たとえば、「1」と「2」を接続すると、結果は「21」になります。「2」と「4」を接続すると、結果は「132112」になります。楽しむ!

24
RATSシーケンス
あなたの仕事は、RATSシーケンスのn番目の項を生成することです。ここで、nは入力です。RATSシーケンスは、Reverse Add Then Sortシーケンスとも呼ばれます。このシーケンスは、http://oeis.org/A004000にもあります。 テストケース: 0 > 1 1 > 2 2 > 4 3 > 8 4 > 16 5 > 77 6 > 145 7 > 668 たとえば、16 + 61 = 77であるため、5の出力は77です。この後、77がソートされます。 最短の提出が勝ちです。これは私の最初の挑戦ですので、これが重複や何かではないことを願っています。

17
モッツキン数
n番目のMotzkin番号は、(0、0)から(n、0)へのパスの数です。各ステップは(1、-1)、(1、0)、または(1、1)の形式で、パスはy = 0未満になることはありません。 上記のリンクからのn = 1、2、3、4のこれらのパスの例を次に示します。 望ましいシーケンスはOEIS A001006です。OEISには、シーケンスの他のいくつかの特性があります。 入力として正の整数nが与えられます。n番目のMotzkin番号を出力する必要があります。 Motzkinの番号は1〜10です。 1, 2, 4, 9, 21, 51, 127, 323, 835, 2188 すべての標準入出力メソッドが許可されています。標準の抜け穴が適用されます。 これはコードゴルフです。最少バイトが勝ちます。

3
助けて!電卓が壊れた!(整数式を電卓のキーストロークに変換します)
前書き 助けて!誤ってTI-84計算機を窓から落とし(方法は聞かないでください)、壊れました。明日は数学のテストがありますが、見つけることができるのはこれらのボタンを備えた計算機だけです。 7 8 9 + 4 5 6 - 1 2 3 * 0 = / 私の数学のテストは、式の評価に関するレビューテストです。などの式を取得1+(5*4)/7し、予備の計算機でそれを解決するために必要なキーストロークに変換するプログラムが必要です。(そして、あなたが疑問に思っている場合、これは実際に私に起こりました)。 チャレンジ 含有する非空の入力文字列が与えられた唯一の文字0-9、(、)、+、-、*、および/、出力スペースで区切られた文字列内のキーストローク(例えば。1 + 3 / 3 =)。出力の最後には常に等号が必要です。標準の抜け穴は許可されていません。 例: 入力:1+(5*4)/7、出力:5 * 4 / 7 + 1 = 入力:6*(2/3)、出力:2 / 3 * 6 = 入力:(7-3)/2、出力:7 - 3 / 2 = この課題を簡単にするには: 入力には、計算機をクリアする必要のない一連のキーストロークが入力されていると想定1-(7*3)できます(計算する必要があるため無効です。7 * 3実行するには計算機をクリアします1 …

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