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

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

4
数値が正方形かどうかをテストする
レジスタに64ビット符号なし整数を指定してGOLFアセンブリプログラムを作成します。これは、正方形の場合はnレジスタにゼロ以外の値を入れ、それ以外の場合はに入れます。sn0s あなたのゴルフ(組み立て後)バイナリが4096バイトに収まらなければなりません。 プログラムは、次のPython3プログラム(GOLFディレクトリ内に配置する必要があります)を使用してスコア付けされます。 import random, sys, assemble, golf, decimal def is_square(n): nd = decimal.Decimal(n) with decimal.localcontext() as ctx: ctx.prec = n.bit_length() + 1 i = int(nd.sqrt()) return i*i == n with open(sys.argv[1]) as in_file: binary, debug = assemble.assemble(in_file) score = 0 random.seed(0) for i in range(1000): cpu = golf.GolfCPU(binary) if …

30
反強磁性秩序
反強磁性は、IBMの研究者が同じ量の原子で1テラバイトのディスクから100テラバイトのディスクにジャンプするために使用したものです。 反強磁性を示す材料では、通常電子のスピンに関連する原子または分子の磁気モーメントは、隣接するスピン(異なる副格子上の)が反対方向を指す規則的なパターンで整列します。 あなたの仕事は、上の図のような反強磁性原子の順序を描くプログラムを書くことです。少なくとも4組のペアを持つことができなければなりませんが、さらに多くのペアがあります。 各ペアは次のように表示する必要がありますが、実際の矢印でなければなりません。 上下 アップダウン 上下 出力は、ASCIIアートまたはグラフィック出力になります。 関数またはプログラム全体のみを作成できますが、入力を受け取り、その数のペアを描画する必要があります。言葉だけの例: 入力:1 上下 アップダウン 上下 入力:2 上下上下 ダウンアップダウンアップ 上下上下 許容される矢印: ↑ そして ↓ ⇅ そして ⇵ /|\ そして \|/ 答えは読みやすいように、言語、Xバイト形式で入力してください。最小バイト数が勝ちです!

6
重なる円
あなたは、プログラムまたは機能を記述する必要があり、その与えられたNことにより、N等間隔の正方格子と固体内接円出力または戻り黒丸によって部分的にまたは完全に重複しているグリッドの正方形の数。 サイズが0のオーバーラップ(つまり、円が線に触れるだけの場合)はカウントされません。(これらの重複は、例えばで発生しN = 10ます。) 例 N = 8 (64 squares), Slices = 60 入力 整数N > 0。(グリッドにはN * N正方形があります。) 出力 整数、ソリッドサークルスライスの数。 例 (入出力ペア) Inputs: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Outputs: 1 4 9 16 25 36 45 60 77 88 …

6
パターンのプログラムによるプリンスプレフィックス
星の王子様のチャプターIをできるだけ多く出力または返すプログラムまたは関数を作成する必要があります。プログラムまたは関数は、印刷可能なASCII文字(32〜126のコードポイント)と各行の終わりの改行のみを含むM行N列のコードブロックでなければなりません。 96個の印刷可能なASCII文字(および行の最後の改行)から選択した最大26文字しか使用できません。 各行と列で、すべてのキャラクターは数独パズルのように明確に区別する必要があります。つまり、行または列に2回文字を入れることはできません。 正しい例とコードブロックM = 4、N = 3およびalphabet = {a,b,c,d,/,*}: abcd bcd* */ac コードの詳細 コードブロックの形状(MおよびN)を選択できます。 ブロックはすべて文字で埋める必要があります。つまり、すべての行は同じ長さでなければなりません。 最後の行の末尾の末尾の改行はオプションです。 上記の各行と各列に書かれているように、すべての文字は明確でなければなりません。 出力の詳細 追加出力なしで、星の王子さまの第1章の接頭辞を出力するか返す必要があります。 テキスト内の改行に到達した場合、一般的なバリアント(\ r、\ n、\ r \ n)として表すことができますが、そのうちの1つだけを使用し、スコアの1バイトとしてカウントします。 追加の末尾の改行はオプションです。 スコアは、出力テキストの長さであり、追加の改行がある場合はそれを除きます。スコアが高いほど優れています。 回答例 ##Python3, score = 6 alphabet = `print('O\ce w)#X` (alphabet element count = 16) print('O\ nce w')#X このPython 3(ideone)プログラムまたは@MartinBüttnerが提供するこのCJamプログラム(オンライン)を使用して、コードの妥当性を確認できます。

3
ASCII Lシステムレンダラー
バックグラウンド L-システム(又はLindenmayerシステム)は、とりわけ、容易にモデルフラクタルに使用することができ、平行書き換えシステムです。この質問は、決定論的でコンテキストのないLシステムに関するものです。これらは、アルファベットの記号、初期公理文字列、および各アルファベット記号を新しい文字列にマッピングする一連の書き換えルールで構成されています。ルールは公理に並行して適用され、新しい文字列が生成されます。その後、このプロセスが繰り返されます。 たとえば、公理「A」とルールA = ABA; B = BBBを使用するシステムは、文字列「ABA」、「ABABBBABA」、「ABABBBABABBBBBBBBBABABBBABA」などのシーケンスを生成します。簡潔にするために、明示的に言及しませんLシステムを定義するときのアルファベット。さらに、明示的な書き換えルールのないシンボルは変更されていないと見なされます(つまり、シンボルAのデフォルトルールはA = Aです)。 Lシステムは、タートルグラフィックスの形式を使用して視覚化できます。慣例により、亀は右向きになります。文字列は、そのシンボルを反復して描画されます。Fは「1単位前方に描画」、Gは「1単位前方に移動」、+は「1単位左に曲がる」、-は「1単位右に曲がる」ことを意味します単位"。文字列内の他のすべてのシンボルは無視されます。この質問のために、角度単位は常に90°であると想定されています。 仕事 Lシステムの仕様と反復回数が指定されている場合、プログラムは、ボックス描画文字を使用して、結果の文字列のASCIIレンダリング(上記の説明を参照)を出力する必要があります。 パラメーターは、公理、書き換え規則(方程式の;区切りのリストとして)、および書き換えの反復回数を含むスペース区切りの文字列として渡されます。たとえば、入力 "FF = FGF; G = GGG 2"は文字列 "FGFGGGFGF"を生成するため、適切なギャップで4本の線を描画します。 Lシステムで使用される記号は、スペースとセミコロンを除く任意のASCII文字にすることができます。シンボルごとに指定される明示的なルールは最大で1つです(上記のように、デフォルトの書き換えルールはIDマッピングです)。 出力には常に少なくとも1つのFが含まれると想定できます。 出力には、次のUNICODEボックス描画文字を使用する必要があります、視覚化を表すを:─(U + 2500)、│(U + 2502)、┌(U + 250C)、┐(U + 2510)、└(U + 2514) 、┘(U + 2518)、├(U + 251C)、┤(U + 2524)、┬(U + 252C)、┴(U + 2534)、┼(U + 253C)、╴(U + 2574)、 …

1
Kolmogorov Complexity Solverを書く
文字列Sのコルモゴロフの複雑さは、出力が正確にSであるプログラミング言語Lで書かれた最短プログラムPの長さです。(はい、実際の定義はより形式的ですが、これは課題に十分です。) この挑戦であなたの仕事は、で書かれたプログラムであり、可能な限り最短の「コルモゴロフ複雑性ソルバー」、書くことであるLの文字列を取り込み自体Sと最短返しPで書かれたL出力というSを。 これに対する単純なアプローチは、すべての長さ1のプログラム、次にすべての長さ2のプログラム、すべての長さ3のプログラムなどを繰り返し、それぞれを実行して、Sを出力するプログラムが見つかるまで出力を測定することです。このアプローチの問題は、これらのプログラムの一部が実行を停止しない可能性があることです。つまり、ソルバー自体が停止することはありません。そして、停止する問題のため、停止しないプログラムを回避する確実な方法はありません。 単純ですが不完全な解決策は、潜在的なPのそれぞれの実行時間に時間制限を設けることです。時間内に停止しないプログラムは渡されますが、ソルバーは確実に停止します(Lのプログラムが実際に制限時間内にSを出力できると仮定)。 チャレンジ ソルバーは、次の3つのことを行うプログラムまたは関数として記述します。 文字列S。 秒単位の制限時間またはそれより短い時間範囲(ミリ秒など)である正の整数T。 文字列Aの潜在的に使用する文字のアルファベットのPさん。 また、Aの文字のみを含む最短のPを出力し、T時間単位未満で実行し、Sを出力します。 これは一般的な擬似コードです。 Function KolmogorovComplexitySolver(S, T, A): Assign N to 0 Loop until function returns: In any order, iterate over all strings of length N that only contain characters from *A*. Call the current string P: Execute P, saving the output to …

19
指定されたバイト数を人間が読める形式にフォーマットします
挑戦と起源 スタックオーバーフローに関する一般的な質問は、Javaでバイトサイズを人間が読める形式に変換する方法です。最もよく投票された答えにはこれを行うための非常に良い方法がありますが、これはcodegolfであり、私たちはもっとうまくやることができますか? あなたの課題は、与えられたバイト数を人間が読める正しい形式に変換し、その結果を言語から標準に出力するメソッドまたはプログラムを作成することです。* *詳細については、ルールを参照してください! 入力 入力は常に最大(2 ^ 31)-1の正のバイト数になります。 出力 出力として国際単位系またはバイナリ表記のどちらを使用するかを選択できます(SI表記はおそらくいくつかのバイトを節約します)。 SI: B, kB, MB, GB Binary: B, KiB, MiB, GiB 注:入力範囲が制限されているため、GBまたはGiBよりも高いユニットは使用できません。 出力例 国際単位系: Input Output 0 0.0 B 999 999.0 B 1000 1.0 kB 1023 1.0 kB 1024 1.0 kB 1601 1.6 kB 160581 160.6 kB 4066888 4.1 MB 634000000 …
16 code-golf 

3
順列を再構築する
前書き nオブジェクトのランダムな順列が渡されたとします。順列はボックスに密封されているため、どの順列であるかわかりませんn!。順列をn個別のオブジェクトに適用できた場合、すぐにそのアイデンティティを推測できます。ただし、置換は長さnバイナリベクトルにのみ適用できます。つまり、それを認識するために数回適用する必要があります。明らかに、nたった1つでベクトルに適用することで1仕事はできますが、賢いのであれば、log(n)アプリケーションでそれを行うことができます。ただし、そのメソッドのコードは長くなります... これは実験的な課題であり、スコアはコード長とクエリの複雑さの組み合わせ、つまり補助プロシージャの呼び出し回数です。仕様は少し長いので、ご容赦ください。 タスク あなたの仕事は、0ベースまたは1ベースのインデックス付けを使用して、入力として正の整数と最初の整数の順列をとる名前付き関数(またはそれに最も近いもの) を書くことです。その出力は置換です。ただし、順列に直接アクセスすることはできません。これでできることは、ビットのベクトルに適用することだけです。この目的のために、順列とビットのベクトルを取り込んで、th座標がbitを含む順列ベクトルを返す補助関数を使用します。例えば:fnpnppnPpvp[i]v[i] P([1,2,3,4,0], [1,1,0,0,0]) == [0,1,1,0,0] 「ビット」は、3and -4、or 'a'、and などの任意の2つの異なる値に置き換えることができ、'b'修正する必要はありません。そのためP、[-4,3,3,-4]と[2,2,2,1]への同じ呼び出しで両方を呼び出すことができますf。の定義はPスコアにカウントされません。 得点 特定の入力に対するソリューションのクエリの複雑さは、補助関数を呼び出す回数ですP。この尺度を明確にするためには、解決策は決定的でなければなりません。疑似ランダムに生成された数値を使用できますが、ジェネレーターの初期シードも修正する必要があります。 ではこのリポジトリあなたはというファイル見つけることができますpermutations.txt(1ベースの場合の各番号をインクリメント)0ベースのインデックスを使用して、505個の順列、50と150までの間の各長さの5が含まれています。各順列は独自の行にあり、その番号はスペースで区切られています。スコアは、これらの入力のバイト数f+平均クエリの複雑さです。最低スコアが勝ちます。 追加ルール 説明付きのコードが推奨され、標準の抜け穴は許可されません。特に、個々のビットは区別できません(したがって、Integerオブジェクトのベクトルを与えてPそのアイデンティティを比較することはできません)。関数Pは入力を再配置する代わりに常に新しいベクトルを返します。fおよびの名前、およびPそれらが引数を取る順序を自由に変更できます。 プログラミング言語で最初に回答するP場合は、呼び出された回数もカウントする関数の実装など、テストハーネスを含めることを強くお勧めします。例として、Python 3のハーネスを次に示します。 def f(n,p): pass # Your submission goes here num_calls = 0 def P(permutation, bit_vector): global num_calls num_calls += 1 permuted_vector = [0]*len(bit_vector) for i in range(len(bit_vector)): permuted_vector[permutation[i]] = bit_vector[i] …

5
賢明でないビット操作
私はでゴルフをするのdcが好きですdcが、ビット単位の操作がないために時々イライラしています。 チャレンジ 4つの指定されたCビット演算と同等のものを実装する機能の提供&、|、~および^(ビット単位のAND、OR、NOT、およびXOR)。各関数~は、少なくとも32ビットの符号なし整数である2つのオペランドを取ります(1つだけを取ります)。各関数は、オペランドと同じビット幅の符号なし整数を返します。 制限 でサポートされている操作のみを使用できますdc。これらは: + - * / 算術加算、減算、乗算、除算 ~ modulo(または言語がサポートしている場合はdivmod) ^ べき乗 | モジュラーべき乗 v 平方根 > >= == != <= < 標準の等式/不等式演算子 >> <<ビットシフト演算子。 dcこれらはありませんが、2の累乗による除算/乗算の観点から自明に実装されているため、これらを許可します。 制御構造はdc、(再帰)マクロと(不)平等演算を使用して不器用に構築されます。言語に組み込まれている制御構造を使用できます。 また、論理演算子を && || !直接使用することはできませんが、論理演算子を使用することもできますdc。 あなたはビット単位の演算子を使用してはならない &、|、~および^または自明それらを実装する任意の機能。 さらに、組み込みの文字列のベース変換演算子または関数を使用しないでください。 また、答えの検証に役立つテストプログラムまたはオンラインコンパイラスニペット(ゴルフスコアには含まれていません)の提供を検討してください。

7
スクランブルキーで入力する
あなたの友人はコンピューターがあまり上手ではないので、実際の冗談で誰かがキーボードの文字(az)をスクランブルしました。彼が座ってキーボードを見て名前を入力しようとすると、彼は文字がスクランブルされていることに気づき、助けを求めました。 あなたは賢いので、彼が自分の名前を入力してから、彼の名前の代わりに画面に表示されるものを繰り返し再入力すると、彼は最終的に彼の名前を入力することに成功することを知っています。また、親切でキーを再配置しますが、成功するのに何ターンかかるかを知りたいです。 あなたの仕事は、文字をシャッフルし、友人の名前がターン数を計算するプログラムまたは関数を書くことです。 入力の詳細: 2つの文字列が、言語に便利な構造の入力として与えられます。 最初の文字列は、古い小文字のアルファベット順の新しい小文字のリストです。(最初の文字はの位置にありa、最後の文字はの位置にありzます。)文字列には常に何らかの変更が発生します。 2番目の文字列は名前です。印刷可能なASCII文字を含めることができますが、大文字と小文字のアルファベットのみがシャッフルされます。名前自体はalでシャッフルされないかもしれません。 出力の詳細: 出力は、最小限必要な巻き数の単一の整数です。改行はオプションです。 例: 入力: 'abcfdeghijklmnopqrstuvwxyz' 'Mr. John Doe'(d、e、fの位置が変更されました) 出力:( 3表示される名前はMr. John Fod=> Mr. John Eof=> Mr. John Doe) 入力: 'nopqrstuvwxyzabcdefghijklm' 'Mr. John Doe'(ROT13暗号) 出力:( 2文字を含むすべての入力名は2、元の名前を生成するためにラウンドします。) 入力: 'aebcdjfghiqklmnopzrstuvwxy' 'John Doe' 出力: 140 これはコードゴルフなので、最短のエントリが優先されます。

5
WythoffのNimを完璧にプレイする
あなたの目標は、Wythoff's Nimのゲームに最適なプレイヤーを書くことです。 ワイソフのニムのルール WythoffのNimは、2つの同じカウンターの山でプレイされる決定論的な2プレイヤーゲームです。プレイヤーは交互にターンし、次のいずれかを行います。 最初のパイルから1つ以上のカウンターを削除します 2番目のパイルから1つ以上のカウンターを削除します 最初のパイルと2番目のパイルの両方から、等しい数のカウンター(1つ以上)を削除します。 もちろん、パイルは負になることはできませんが、0にすることはできます。最後のカウンターをすべて削除したプレイヤーがゲームに勝ちます。 より幾何学的に考えるために、このアプレットでプレイできるゲームの同等の定式化を以下に示します。単一の女王は、コーナーが左下にある4分の1の無限チェス盤の正方形から始まります。プレイヤーは交互にクイーンを移動します。クイーンはチェスのクイーンのように移動しますが、3方向に制限されます。 ダウン 左 斜め下および左 クイーンをコーナーに移動する人が勝ちます。 クイーンの座標(コーナー(0,0))をそれぞれのパイルのサイズに関連付けると、両方のゲームが同じであることが簡単にわかります。 完璧なプレイ (完璧なプレーと勝利の動きの概念に精通している場合は、これをスキップできます。) WythoffのNimは有限で決定的なゲームであるため、完全なプレイという概念があります。完璧なプレーヤーとは、常に理論的に勝ったポジションから勝つ戦略です。つまり、勝利を保証する戦略が存在するポジションです。 勝利戦略となるには、移動したばかりのプレーヤーの理論上の勝利位置に常に移動するように移動するだけで十分です。これらの最初の勝利ポジション(コールドポジションとも呼ばれ(0,0), (1,2), (2,1), (3,5), (5,3)ます)はです。Wythoff's Nimの勝利戦略を見つけるアルゴリズムの説明と、勝利ポジションを生成する公式については、Wikipediaの記事を参照してください。 プログラム要件 プログラムや関数を書くと、入力として位置を取り、その動きの後の位置の形で勝ちの動きを出力します。最少バイトが勝ちます。 勝ち手が存在しない場合、つまりポジションが理論上の損失である場合、プログラムはその旨を示し、没収する必要があります。 プログラムは妥当な時間内に実行する必要があります。したがって、指数関数的再帰ゲームツリー検索では十分ではありません。戦略を事前に計算してハードコーディングしたい場合は、問題ありません。 入力 (i,j)杭のサイズを表す、それぞれ最大で1組の負でない数99。これは、2つの数字、タプル、リスト、または任意のコンテナにすることができます。 出力 移動後の位置を、再び2つの数字またはそのコンテナーとして印刷または出力します。これは勝ちのポジションへの合法的な動きでなければなりません。このような動きが複数ある場合、どれでも構いませんが、1つだけです。 勝つ動きがない場合は、出力でこれを示す必要があります。任意の出力は次のようにFalse、None0、または(-1,-1)それは法的な位置ではありません、すべて負け入力のための同じである限り、行います。 実行例 f(5,0) = (0,0) f(2,2) = (1,2) # Or (2,1) or (0,0) f(1,2) = False f(13,9) = (13,8) …

1
上司のために英語を編集する
あなたの上司は最近、英語と呼ばれるこの興味深いプログラミング言語を知っています。彼はこの「革命的な」アイデアを持っていて、あなたと一緒にコーディングして、コードの生産率を倍にしたいと考えています!彼は技術に精通していないため、彼もあなたがコーディングできるようにコンパイラを書いて欲しいと思っています! さて、あなたは邪悪な怠programmerなプログラマーであり、明らかにこのばかげて複雑な言語をコンパイルするプログラムを書くことはないでしょう。代わりに、上司のコードに常にエラーがあることを確認します。そうすれば、上司は実際のコンパイルに到達せず、コーディングの代わりに文法エラーを修正することができなくなります。 課題は、ターミナルから実行できるプログラムを作成し、ファイルパスを引数として受け入れることです。プログラムは以下を行う必要があります。 タイプミスを導入してファイル入力を変更します。 導入したタイプミスに遭遇したため、コンパイルに失敗するふりをする。 同じファイルのコピーでプログラムを実行しても、同じタイプミスが連続して2回発生することはありません。 課題を説明するために、このファイルでプログラムを実行します。 Take an array as input. Sort the array. Output the array. の行に沿って何かを出力する必要があります Error on line 1: 'Take an arqay as input.' ^ arqay is not a valid identifier. そして、プログラムにコンパイルするように指示したファイルは次のようになります。 Take an arqay as input. Sort the array. Output the array. プログラムの仕様に関する詳細を次に示します。 プログラムでは、上司が入力したプログラム内の任意の文字を別のランダムな文字に交換すると、文法エラーが発生すると想定できます。あなたのプログラムは、ボスコードにエラーを作成するためにアルファベット以外の文字を使用しないでください。あなたの上司は決して数字や記号を使用せず、彼は何かが進行中であることを知ります。あなたのプログラムは、上司のプログラムの言葉にエラーを導入するだけです。文のスペースや句読点を変更しないでください。あなたのプログラムは、上司がコンパイルしようとするプログラムの大文字と小文字を変えてはなりませんarQay。つまり、エラーは無効です。これによりtake、Take、またはのArray代わりにarrayます。プログラムは、まずエラーの行を示すことによりエラーを出力する必要があります。 Error …
16 code-golf 

2
拒否する良い時期
セットアップ あなたが与えられていると仮定し、N 1と、ヒューズ≤ N ≤5、長いメートルでそれぞれが、そしてここで、各ヒューズの関連する燃焼速度有するN個当たりのメートルDの時間。 ヒューズは、片端または両端で点灯し、その後片端または両端で消灯、再点灯、再消灯などを、ヒューズが完全に消費されるまで何度でも行うことができます。ヒューズを瞬時に点灯および消灯することができ、ヒューズが完全に消費された(燃えた)瞬間を正確に観察できます。 ヒューズは切断できず、端以外は点灯できません。 このような設定により、2つのヒューズ点灯/消費イベント間の時間を測定することにより、無限に正確なタイミングシステムが可能になります。たとえば、1時間あたり1メートルの燃焼速度を持つ2つのヒューズがある場合、次の方法で正確に45分(3/4時間)を測定できます。 同時に:最初のヒューズを両端で点灯し、2番目のヒューズを一端で点灯し、時間間隔の開始をマークします 最初のヒューズが消費された瞬間(30分後)に2番目のヒューズの2番目の端を点灯 2番目のヒューズが消費された瞬間(15分後)に時間間隔の終わりをマークする チャレンジ 時間数の小数t、およびn個のヒューズの正確な燃焼速度を表すn個の小数のセットが与えられた場合、ヒューズの系統的燃焼によりt時間を正確に測定できる場合、真の値を出力/返すプログラムまたは関数を記述します。そうでなければ偽の値。 プログラムへの入力は次のいずれかです。 次の形式のコマンドライン引数 TN/TD N1/D1 N2/D2 N3/D3 ... TN/TD N1/D1 N2/D2 N3/D3 ...読み取りstdinまたは同等の形式の文字列 TN/TD N1/D1 N2/D2 N3/D3 ...関数の引数として渡されたフォームの文字列 ["TN/TD", "N1/D1", "N2/D2", "N3/D3", ...]関数の引数として渡される文字列の配列 すべての場合、t = TN/ TD、ここでTN、TD∈[1,10000]。 同様に、すべての場合において:ヒューズ用の燃焼速度は、iが = NをI / D I = N<i>/ D<i>、ここでN<i>、D<i>∈[1,10]∀ I。 常に1〜5個のヒューズ(包括的)があり、すべての入力が有効で範囲内にあると仮定することができます。また、すべての入力分数が最も低い用語で与えられていると仮定することもできます。 …

2
Kingdom Builderのゲームを獲得する
ここで新しい形のコードゴルフを試したいです。ボーナスと同様に、チャレンジのすべての部分を完了する必要はありませんが、各回答には特定のサイズのサブセットを実装する必要があります(すべての回答に実装する必要があるコアがあります)。したがって、ゴルフに加えて、この課題には、うまく機能する一連の機能を選択することも含まれます。 ルール キングダムビルダーはボードゲームで、(先が尖った)ヘックスグリッドでプレイされます。ボードは4つの(ランダム化された)クアドラントで構成され、各クアドラントには10​​x10の16進数セルがあります(したがって、ボード全体は20x20になります)。この課題のために、各ヘックスセルには水(W)、山(M)、町(T)、城(C)、または空(.)が含まれています。したがって、象限は次のようになります . . W . . . . . . . . M W W . . . . . . . M . . W . . . T . M M . W . . . . . . . . M . W W . …

9
人間が読める時間間隔を日付コンポーネントに変換する
チャレンジ 人間が読める時間間隔をフォームの日付コンポーネントに変換する最短のプログラムを作成します。 {±YEARS|±MONTHS|±DAYS|±HOURS|±MINUTES|±SECONDS} サンプルケース 各テストケースは2行で、入力の後に出力が続きます。 1 year 2 months 3 seconds {1|2|0|0|0|3} -2 day 5 year 8months {5|8|-2|0|0|0} 3day 9 years 4 seconds -5 minute 4 years 4 years -3seconds {17|0|3|0|-5|1} ルール strtotimeジョブ全体を実行する組み込み関数を使用することはできません。 最短コード勝利(バイト) 出力をstdoutファイルまたはファイルに印刷できます。結果は関数によって返すこともできますが、それはユーザー次第です トークンは単数形でも複数形でもかまいません。 コンポーネントはランダムな順序である場合があります 番号とトークンの間に空白がない場合があります 時間間隔が正の場合、符号はオプションです(入力および出力) コンポーネントが複数回表示される場合、値を追加する必要があります 各コンポーネントには独自の記号があります コンポーネントは個別に処理する必要があります(たとえば80 minutes、出力では80のままです) 入力は小文字であることが保証されています ハッピーゴルフ!
16 code-golf  string  date 

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