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

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

4
マトリックス内のすべての行と列を回転させる
チャレンジ n x n整数の行列が与えられた場合n >= 2 1 2 3 4 および正確2nな要素を持つ整数のリスト [1,2、-3、-1] 回転した行列を出力します。このマトリックスは、次の方法で構成されます。 リストの最初の整数を取得し、この値で最初の行を右に回転します。 次の整数を取得し、最初の列をこの値だけ下に回転します。 次の整数を取得し、マトリックスのすべての行と列を1回回転するまで、この値などで2番目の行を右に回転します。 リストには負の整数を含めることができます。これは、行/列を右/下ではなく左/上にシフトすることを意味します。整数がゼロの場合、行/列を回転させないでください。 上記の入力を使用した例 リスト要素マトリックスの説明 -------------------------------------------------- ---------- 1 2 1 1行目を右に1回転 3 4 2 2 1 1列目を2回転下げる 3 4 -3 2 1 2行目を左に3回転 4 3 -1 2 3 2列目を1つ上に回転 4 1 ルール 最も便利な入力形式を選択できます。どちらを使用するかを明確にしてください。 機能または完全なプログラムが許可されます。 入出力のデフォルト規則。 標準の抜け穴が適用されます。 …

5
外部からどのくらい離れていますか?
中心が整数間隔で配置された軸に沿った単位正方形要素に分割された2D領域を取ります。エッジは、2つの要素で共有される場合は内部エッジと呼ばれ、それ以外の場合は外部エッジと呼ばれます。 あなたの目標は、として知られている各要素の中心から出発外縁に到達するために横断しなければならない隣接要素の最小数を見つけることであるtraversal distance、またはdistance略しています。エッジのみを横断できます(つまり、コーナーカット/斜め移動はできません)。「外部要素」(少なくとも1つの外部エッジを持つ要素)は0、外部エッジに到達するために隣接する要素を横断する必要があると見なされることに注意してください。 入力 入力は、すべての要素の中心の(x、y)を示す非負の整数ペア座標のリストです。重複する要素はないと想定されます(つまり、x / yペアが要素を一意に識別します)。要素の入力順序について何も想定してはいけません。 入力の原点を任意の場所(0、0、1、1など)に変換できます。 すべての入力要素が接続されていると仮定できます。つまり、上記の規則を使用して、任意の要素から他の要素に移動することが可能です。これは、2D領域が単に接続されているという意味ではないことに注意してください。内部に穴がある場合があります。 例:次は無効な入力です。 0,0 2,0 エラーチェックは不要です。 入力は、任意のソース(ファイル、stdio、関数パラメーターなど)からのものです。 出力 出力は、各要素を識別する座標のリストと、エッジに到達するために通過した対応する整数距離である必要があります。出力は、任意の要素の順序にすることができます(たとえば、入力として受け取ったのと同じ順序で要素を出力する必要はありません)。 出力は、任意のソース(ファイル、stdio、関数の戻り値など)に対するものです。 要素の座標を外部距離と一致させる出力はすべて問題ありません。たとえば、これらはすべて問題ありません。 x,y: distance ... [((x,y), distance), ...] [(x,y,distance), ...] 例 テキスト入力例の形式はx,y、1行に1つの要素があります。これを便利な入力形式に変更してください(入力形式の規則を参照)。 テキスト例の出力は、x,y: distance行ごとに1つの要素を持つ形式です。繰り返しになりますが、これを便利な出力形式に変更してください(出力形式の規則を参照)。 グラフィカルな図の左下の境界は(0,0)であり、内部の数字は、外側の端に到達するために予想される最小距離を表します。これらの図は純粋にデモンストレーションのみを目的としていることに注意してください。プログラムはこれらを出力する必要はありません。 例1 入力: 1,0 3,0 0,1 1,2 1,1 2,1 4,3 3,1 2,2 2,3 3,2 3,3 出力: 1,0: 0 3,0: 0 …

1
同色の算術級数
ファンデルワーデンの定理によると 与えられた正の整数rとkに対してN、整数{1, 2, ..., N}がそれぞれr 異なる色のいずれかで色付けされている場合、kすべて同じ色の算術級数で少なくとも整数があるような数があります。最小のものNは、ファン・デル・ワーデン数W(r, k)です。 あなたの目標は、W(r, k)正の整数入力rとを与えられたファンデルワーデン数を計算することkです。少ないバイトが勝ちます。 この関数は非常に急速に成長し、計算に時間がかかることに注意してください。でもW(4, 4)不明です。無制限のリソース(時間、メモリ、スタックの深さなど)を備えた理想的なコンピューターでコードを実行すると想定できます。あなたのコードは理論的には答えが分からない値に対しても正しい答えを与えなければなりません。 この関数を計算する組み込み関数は許可されていません。 例 ためのr = 2色と長さの進行k = 3、長さ-が存在する8ような進行を回避する配列、すなわち3同じ色の等間隔の要素: B R R B B R R B しかし、そのような長さの9シーケンスはありませんW(2, 3) == 9。例えば、 R B B R B R R B R ^ ^ ^ 表示されている長さ3と同色の算術級数が含まれています。 テストケース おそらく、小さなケースのみをテストできます。 +-----+-----+-----+-----+-----+-----+------+ | | k=1 | …

3
宇宙船はどこに行くのですか?
Zgarbによって提案されたアイデアに基づいています。 宇宙船は通常の3Dグリッドを動き回っています。グリッドのセルには、右手座標系xyzの整数でインデックスが付けられます。宇宙船は原点から始まり、正のxに沿って向きます軸に、正のz軸が上向きになります。 宇宙船は、空ではない一連の動きによって定義される軌道に沿って飛行します。各動きはF、宇宙船がそのセルの向きに沿って1つのセルを移動させる(順方向)、または6つの回転のいずれかですUDLRlr。これらは次のようにピッチ、ヨー、ロールに対応します。 ダイアグラムを作成してくれたZgarbに感謝します。 UpとD自分自身で宇宙船のピッチを90度変更します(方向は宇宙船の機首の動きに対応します)。 Lエフトと R ightは、宇宙船のヨーを90度変化させます。彼らはちょうど通常の左と右のターンです。 leftとrightは90度のローリング運動で、方向はどの翼が下に動くかを示します。 これらは常に関連する軸が一緒に回転するように、宇宙船に対して相対的に解釈される必要があることに注意してください。 数学的には、宇宙船は最初は位置(0, 0, 0)にあり、(1, 0, 0)ベクトルに沿って(0, 0, 1)上向きに指します。回転は、座標系に適用される次のマトリックスに対応します。 U = ( 0 0 -1 D = ( 0 0 1 0 1 0 0 1 0 1 0 0 ) -1 0 0 ) L = ( 0 -1 0 R …

4
金曜日の先祖返り:ZXスペクトラムBASICリストの番号を付け直します
私が最初に触れたプログラミング言語はSinclair BASICでした。多くのBASIC方言と同様に、すべてのソースコード行に番号を付ける必要があります。 その結果、GO TOコマンドの使用は慣用的であり、実行を指定された行番号(ラベルなし)にジャンプします。 またGO SUB、基本的な関数呼び出しとして使用できる関連コマンドがあります。繰り返しますが、実行は指定された行番号にジャンプしますが、RETURNコマンドに到達すると、実行はの後の次の命令にジャンプして戻りGO SUBます。 同様に、RUNコマンドは指定された行でプログラムの実行を再開します。 行番号の付いたBASICインタープリターで時間を過ごした人は誰でも、番号にギャップのある番号付けスキームを使用することを学びます。これは、新しいコード行を挿入しやすくするためです。ただし、それでも、連続した番号の行の間に新しい行を挿入する必要がある場合があります。 入力として行番号付きのBASICリストを指定し、同じプログラムを出力しますが、行番号が10から始まり、10ずつ増加するように番号を付け直します。入力リストにはGO TOor GO SUBコマンドがあるため、これらに関連付けられた番号も調整する必要があります。 GO TOまた、GO SUBコマンドは独自の行または行末にありIF THENます。その^(\d+) .*GO (TO|SUB) (\d+)$ような行に一致するには、言うまでもなく安全です。引用符で囲まれたこれらのコマンドは無視する必要があります。 RUNコマンドは常に独自の行にあります。この場合、行番号はオプションです。欠落している場合、インタープリターは単にプログラムの先頭から開始します。 GO TO、GO SUBまたはRUNコマンドが存在しない行を参照する場合、代わりに次の定義された行にジャンプします。エントリはこれに対処し、適切な行を指すようにそのような行参照が修正されるようにする必要があります。これらのコマンドのいずれかでプログラムの終了後の行番号が指定された場合、動作は未定義になる場合があります。 行番号は常に1〜9999の正の整数になります(マニュアルに従って)。これは、入力プログラムが999行を超えないことを意味します。 入力行には、常に数値の昇順で番号が付けられます。 このチャレンジのために、入力リストには印刷可能なASCIIのみが含まれます。ZX文字セットについて心配する必要はありません。そうは言っても、エントリが実際にZX BASICまたは適切なz80アセンブリ/マシンコードで記述されている場合(およびエミュレータがある場合)、代わりにZX文字セットでエンコードする入力を選択できます。 この目的のために特別に調整されたライブラリまたはユーティリティの番号を変更することはできません。 入力例: 1 REM "A rearranged guessing game" 2 INPUT A: CLS 3 INPUT "Guess the number ", B 10 IF A=B …
15 code-golf 

3
フィボナッチの六十進法
レオナルドダピサーノ(別名フィボナッチ)は、ヒンドゥーアラビア数字システムをヨーロッパに持ち込むことに貢献しました。その前に、そこの数学者はローマ数字で60を底に働いた。 たとえば、2の平方根は次のように概算できます:60分の1から24の部分、360分の51の部分、およびi xxiv liとして記述されます。スケーリングはコンテキストによって決定されます。当時、「無」は知られていました(つまりゼロ)が、この数体系には標準的な表現がありませんでした。 フィボナッチが旅行中に出会ったこれらの新しい小数の数字を無視していたなら、彼は確かに現在のシステムの欠陥に対処していたでしょう。この改善されたシステムを、フィボナッチの六十進数と呼びます。 あなたの仕事は、ASCII形式またはバイナリ形式の浮動小数点数を取り、60を基数とするローマ数字で出力するプログラム、関数、またはコードスニペットを記述することです。入力はファイル、コンソール、コマンドライン、または関数の引数であり、出力はファイルまたはコンソールのいずれか最も簡単なものです。 出力は大文字でも小文字でもかまいませんが、これらの改善を含める必要があります。 nまたはNを使用して、場所に値がない、つまり「ゼロ」(システムの問題)を意味するnullを示します。 eまたはEを使用して、六十進点に対応するetを示します(システムの別の問題) 中央のドット・またはアスタリスク*を使用して、ローマ数字のグループを区切ります(システムの別の問題) 入力がlix・lix・lix・lix・lix以下の仮数を持つ浮動小数点になると仮定します。n・e・n・n・n・n・i未満の分数は無視できます。したがって、入力にこれらの制限がある場合、1つのeを持つローマ数字のグループを最大10個出力できます。 コンテキストが明確になるように、iより小さい数字には先頭にn・eが必要です。 いくつかの例:input→ 出力 0→ n 1→ i 60→ i・n 0.1→ n・e・vi 3600→ i・n・n 10.5→ x・e・xxx 16777215→ i・xvii・xl・xx・xv 3.1415926536→ iii・e・viii・xxix・xliv・n・xlvii 出力では、仮数部の不要な先行n・、孤立e、または出力の小数部の末尾・nを避ける必要があります。そのため、たとえば、n・n・n・n・i、i・e、およびi・e・n・n・n・n・nは、の入力に対して誤った出力です1。 出力のプラスまたはマイナスn・e・n・n・n・n・iの差は許容範囲内で許容範囲内です。 入力は、選択した言語の正当な浮動小数点であるため、入力が上記で指定した範囲外にない限り、正または負の指数を含めることができます。 そして最後に、ローマ数字の組み込みが許可されています!

3
N-Bonacciシーケンスのリバースエンジニアリング
編集:2016年2月15日月曜日に回答を受け付けます。バイトがあなたに有利になるように! 彼に挑戦「N-Bonacciシーケンスを印刷」以前ここで、@DJMcGoathemは、N-bonacciシーケンスを記述するNの番号が加算され、代わりに、フィボナッチ数列の2伝統の、(「と言わデュオ nacciシーケンス」)。次に、XとNの2つの入力を取得し、X番目のN -nacci数を出力するように求めました。 私は反対を提案します。 シーケンスが与えられると、N- nacciシーケンスのサブセットを出力します。私は「のサブセット」と言います: A)これらのシーケンスは無限です B)シーケンスの開始が指定されている場合は、先頭の1の数を数えるだけです 複数のN -nacciシーケンスに属する可能性がある場合は、最も低いものを選択します。N-nacciシーケンスに 属していない場合、プログラムは出力と間違える可能性のある何かを出力する以外の何かをするかもしれません。これらの動作には、以下が含まれます(ただし、これらに限定されません):無限ループ、エラー、クラッシュ、自身の削除(*咳咳* 警戒 *咳咳*)、またはブラックホールの作成(このブラックホールが発生する可能性のあるものがない限り)有効な出力と間違われる可能性があります)。 この課題のために、これらのシーケンスは1から始まります。これは、N -nacciシーケンスがNから始まることを意味します。さらに、N正の整数でなければなりません。したがって、-1 -nacciなどはありません。 テストケース: 1,1,1 -> 1 49, 97 -> 7 55, 89, 144 -> 2 1 -> 1 6765 -> 2 12, 23, 45, 89 -> 12 100, 199 -> 100

4
巻数を計算する
巻数は、観察者が所定の閉じた経路を追従させておく必要があり、正味反時計回りの回転の整数です。時計回りの回転は、巻数に向かってマイナスにカウントされることに注意してください。パスは自己交差できます。 いくつかの例(Wikipediaから恥知らずに取られた)を以下に示します。 あなたの目標は、与えられたパスの曲がりくねった数を計算することです。 入力 観測者は原点に(0,0)いると想定されます。 入力は、任意の入力ソースからの点の有限シーケンス(整数のペアのような)であり、区分的な線形パスを記述します。必要に応じて、これを整数の1Dシーケンスにフラット化し、入力をスウィズルして、すべてのy座標/逆の前にすべてのx座標を取得することもできます。入力を複素数として取得することもできますa+b i。パスは自己交差する場合があり、長さゼロのセグメントを含む場合があります。最初の点はパスの開始点であり、正のx軸上のどこかにあると想定されます。 パスのどの部分も原点と交差しません。パスは常に閉じられます(つまり、最初のポイントと失われたポイントは同じです)。あなたのコードは最後のポイントを暗示しているか、それを含める必要があるかもしれません。 たとえば、好みに応じて、両方の入力が同じ正方形を指定します。 暗黙のエンドポイント 1,0 1,1 -1,1 -1,-1 1,-1 明示的なエンドポイント 1,0 1,1 -1,1 -1,-1 1,-1 1,0 出力 出力はワインディング番号の単一の整数です。これは、任意のソース(戻り値、標準出力、ファイルなど)に対するものです。 例 すべての例には、エンドポイントが明示的に定義されており、x、yのペアとして指定されています。ちなみに、暗黙的に定義されたエンドポイントを想定し、出力が同じであることを前提として、これらの例をコードに直接入力することもできます。 1.基本テスト 1,0 1,1 -1,1 -1,-1 1,-1 1,0 出力 1 2.反復ポイントテスト 1,0 1,0 1,1 1,1 -1,1 -1,1 -1,-1 -1,-1 1,-1 1,-1 1,0 出力 1 3.時計回りテスト …

17
キルヒホッフの法則を適用する
キルヒホッフの法則によれば、すべての電流を合計すると(ジャンクションに流れる電流は正、ジャンクションを出る電流は負)、結果は常に0になります。 次の図をご覧ください。 キルヒホッフの法則を使用すると、i1 + i4-i2-i3 = 0であるため、i1 + i4 = i2 + i3であることがわかります。 2つのリストがあり、1つはジャンクションに入るすべての電流を含むリスト、もう1つはジャンクションを出るすべての電流を含むリストを1つを除いて、最後のリストを出力します。 テストケース: [1, 2, 3], [1, 2] = 3 [4, 5, 6], [7, 8] = 0 [5, 7, 3, 4, 5, 2], [8, 4, 5, 2, 1] = 6 2番目のリストには、常に最初のリストより1つ少ない項目があります。出力を負にすることはできません。最小のプログラムが勝ちます。

5
スタッキングブロック
特定のポイントにドロップするブロックのリストの入力が与えられた場合、結果の「タワー」の高さを出力します。 この課題を説明する最良の方法は、例です。入力は、nブロックを表す2n個の整数のリストになります。最初の整数はブロックのx位置であり、0インデックスが付けられ、2番目の整数はブロックの幅です。たとえば、の入力はブロックを表します(x座標は以下にラベル付けされます)。2 4 #### 0123456789 ここで、入力がであるとしましょう2 4 4 6。つまり、x = 2で幅が4の1つのブロックと、x = 4で幅が6の1つのブロックです。 ###### #### a。)ブロックは常にタワーの最上部から「ドロップ」し、b。)ブロックは決して「倒れる」ことはありません(つまり、常にバランスが保たれます)。したがって、の入力は以下を 2 4 4 6 12 1表します。 ###### #### # 最後のブロックが「地面」に落ちていることに注意してください。 最終的な出力は、各x値から最大値までのタワーの最大高さになります。したがって、入力2 4 4 6 12 1は出力になります 0011222222001。 ###### #### # 0011222222001 入力は、空白/コンマ区切りの文字列、整数の配列、または関数/コマンドライン引数のいずれかとして指定できます。ブロック位置(x値)は常に整数0以上で、幅は常に整数1以上で、常に少なくとも1つのブロックがあります。 出力は、非数値文字で区切られた単一の文字列(例"0, 0, 1, ...")、すべての数字をリストした単一の文字列(例、 "001..."最大高さは9以下であることが保証されます)、または整数の配列として指定できます。 これはcode-golfであるため、バイト単位の最短コードが優先されます。 テストケース: In Out --------------------------------------------------------- 2 4 …
15 code-golf 

10
整数シーケンスのコードワード
前書き パレイドリア:古代ギリシャ語から。παρα(para、「並行、並行」)+ εἴδωλον( eídōlon、“ image”)。あいまいな刺激を、火星のマークを運河として解釈する、雲の形を見る、音楽の隠れたメッセージを聞くなど、観測者に知られている何かとして解釈する傾向。出典:ウィクショナリー。 例えば: Paralogia:古代ギリシャ語から。παρα(para、“ concurrent、alongside”)+ λόγος(lógos、“ speech、oration、word、...”)。コードゴルフプログラムなど、文字の任意のシーケンスで単語を知覚する傾向。ソース:ええ、私はそれを作りました(実際には、@ Martinが指摘したように、この単語は何か他のものを意味します)。 例えば: df4$/H)hEy_^p2\ jtK2$)look|x1$ チャレンジ 入力として正の整数を取り、出力として整数を生成し、コードの一部として英語の単語を含むプログラムを作成します。入出力関係は、OEISにある整数シーケンスに対応する必要があります。 ルール このリストの単語のみが許可されます。これは明らかにarbitrary意的ですが、どの単語が受け入れられるかについて全員が同意することが不可欠です。その点で、このリストはおそらく他のリストと同じくらい優れています。 少なくとも2つの関数名またはステートメントを連結して単語を形成する必要があります。たとえば、言語に呼び出される関数がある場合、correlationそのまま使用することはできません。連結は厳密である必要があります。単語の各部分の間に他の記号は表示されません。たとえばbro~ken、単語としてカウントされません。 ケースは重要ではありません:両方validとvaLiD許容されています。 文字列内の単語はカウントされません。単語を構成する文字は、選択した言語の関数またはステートメント、つまり実際に実行されるものである必要があります。たとえば、次のコードは許可されません。'deoxyribonucleic'~1、'...'は文字列で~、以前のコンテンツを破棄し、1数値を出力するだけです1。 言葉のすべての文字が必要なはずですです。これは、単語から単一の文字を削除すると、入出力関係が変更されることを意味します。それには、異なるシーケンスの出力、他の出力、出力の生成、エラーの発生が含まれます。 任意の正の整数入力として受け入れなければならず、データ型またはメモリ制限を除いて、出力を生成するべきです。 入力に対応する出力は1、2、3、...に現れる配列に対応している必要がありOEIS。他の出力は生成されません。整数のみ。末尾または先頭に空白がある場合があります。 入力と出力は、関数の引数またはstdin / stdoutです。 スコア スコアは、合計コード長から最長ワードの長さの2倍を引いた文字数で計算されます。または同等に、非最長単語の文字数から最長単語の長さを引いたもの。 最低スコアが勝ちます。 例 これらの機能を持つ架空の接尾語を考えてみましょうc。At:平方を計算します。$:1を追加します。 cAt有効なプログラムになります(シーケンスへの出力対応を1、4、9、...、であるA000290)、およびそれがスコアを持っているでしょう-3。 cAt$また有効です(シーケンス2、5、10であり、...、A002522スコア)-2。 c$At ここでの唯一の単語は「At」であり、単一の関数またはステートメントによって生成されるため、有効ではありません。
15 code-golf  number  word 

2
りんごが落ちている
前書き リンゴの木の幹がx軸の-2から2の間に配置されており、いくつかのリンゴがその周りに落ちます。 | | | | <-------|---|-------> -2 2 毎日、n個のリンゴが落ちます。各リンゴは、地面に真っ直ぐ落ちると、x座標を維持します。 しかし、別のリンゴの上に着地した場合、地面またはリンゴの支持層に到達するまで、次の規則に従って転がります。 現在の高さでx + 1のスペースが空の場合、現在のリンゴはそこに行きます。 そうでなければ、x-1のスペースが空の場合、現在のリンゴはそこに行きます。 それ以外の場合、現在のリンゴは他のリンゴの上にあります。 チャレンジ 入力は、各リンゴのn個の開始位置が順番になります。配列として、または分離された数値として、または他の有効な方法で受け取ることができますが、答えで必ず説明してください。 出力は、木の幹と周りのりんごのASCII図面にする必要があります。あなたがされている必要はありません、それはいくつかのリンゴの下にある一番左のリンゴの左にあると右端のリンゴの右にx軸を描画するために、しかし、あなたはどこにでもそれを描画する必要性を行います。最上位のリンゴの上にツリーを拡張することもできます。 すべてのx座標は-100〜100の間であると仮定できますが、-2と2の間ではありません。 これは、コードゴルフ ...バイトの勝利で最短の答え! 例 入力: [-3, 5, 5, -4, -4, 5, -3] 出力: a| | aaa| | aaa ---|---|---- 入力: [3, 3, 3, 3, 8, 9] 出力: | |a | |aaa …

3
PNZ(3つの固有の数字を順番に推測)
ずっと前のプログラミング本の課題から、PNZはユーザーが正しい順序で3つの固有の数字を推測する必要があるゲームです。 ルール: 繰り返し数字のないランダムな3桁の数字が生成されます。(これはユーザーが推測しようとしているものです) ユーザーは3桁の推測値を入力します。これはプログラムによって評価されます。 正しい場所にある正しい数字ごとに「P」を出力します。 間違った場所で正しい数字ごとに「N」を出力します。 数字が正しくない場合にのみ「Z」を出力します。 すべての数字が正しい場所に正しく入力されるまで入力を受け入れ、「PPP」とそれに続く新しい行での推測の数を出力します。 注: 「正しい数字」とは、推測の数字の1つがランダムな3桁の数字の数字の1つでもあることを意味します。 「正しい場所」とは、「正しい数字」であり、3桁の乱数と同じ場所にあることを意味します。 出力の順序は、最初にすべて「P」、次に「N」、または何も正しくない場合は「Z」のみである必要があります。 入力は、繰り返しの数字が含まれる場合は、「P」は「N」よりも優先さ(例:Number: 123 Input: 111 Output: P) (オプション)長さが正確に3桁ではない入力は評価されず、推測の現在の合計にカウントされません 生成された数字が123の場合の例 > 147 P > 152 PN > 126 PP > 123 PPP 4 生成された数字が047の場合の例 > 123 Z > 456 N > 478 NN > 947 PP > 047 PPP 5 …

6
六角形グリッド上の動き
六角形のグリッド上の動きを表す一連の文字の入力が与えられた場合、「ポインター」の最終座標を出力します。 六角形には次のように番号が付けられます(すべての奇数列が少し下にシフトした長方形のグリッドを想像してください): _____ _____ _____ _____ / \ / \ / \ / \ / -3,-2 \_____/ -1,-2 \_____/ 1,-2 \_____/ 3,-2 \ \ / \ / \ / \ / \_____/ -2,-1 \_____/ 0,-1 \_____/ 2,-1 \_____/ / \ / \ / \ / \ / -3,-1 \_____/ -1,-1 …

3
スタックベースの言語をトークン化する
私は、に取り組んできた別のと呼ばれるスタックベースのゴルフの言語Stackgoat。この課題では、Stackgoat(または実際には一般的なスタックベースの言語)のTokenizerを作成します。 例 "PPCG"23+ ["PPCG", '23', '+'] 'a "bc" + ['"a"', '"bc"', '+'] 12 34+-"abc\"de'fg\\" ['12', '34', '+', '-', '"abc\"de'fg\\"'] "foo ['"foo"'] (empty input) [] ' "" ['" "', '""'] 仕様 処理する必要がある3つのタイプは次のとおりです。 ストリングス、何も内"" 数字、数字列 演算子、空白以外の任意の単一文字 空白は、文字列内にあるか、2つの数値を区切っていない限り、本質的に無視されます。 文字列/文字仕様: 文字列はで区切られ、が検出された"場合\、次の文字をエスケープする必要があります。 '文字はa で始まり、その後の'文字は文字列リテラルに変換されます。'a->"a" ' 常にその後に文字があります 終値を自動挿入する必要があります ルール: の形式evalは許可されません 入出力: 入力は、STDIN、関数パラメーター、または同等の言語を通じて取得できます。 出力は、配列または言語に最も近いものでなければなりません。
15 code-golf  parsing  code-golf  hexagonal-grid  code-golf  string  code-golf  string  code-golf  combinatorics  code-golf  ascii-art  code-golf  string  game  counting  code-golf  arithmetic  complex-numbers  code-golf  string  code-golf  decision-problem  hexagonal-grid  code-golf  string  sequence  code-golf  number  arithmetic  code-golf  ascii-art  code-golf  ascii-art  code-golf  string  arithmetic  code-golf  number  simulation  code-golf  number  arithmetic  code-golf  string  sequence  unicode  code-golf  string  ascii-art  balanced-string  code-golf  number  clock  code-golf  ascii-art  number  code-golf  math  number  sequence  code-golf  string  ascii-art  balanced-string  code-golf  math  string  popularity-contest  graphical-output  image-processing  code-golf  string  permutations  code-golf  string  code-golf  random  code-golf  string  cryptography  palindrome  code-golf  chess  code-golf  math  array-manipulation  topology  code-golf  math  sequence  code-golf  keyboard  classification  code-golf  string  sequence  code-golf  natural-language  code-golf  math  number  sequence  sorting  code-golf  sequence  combinatorics  grid  tic-tac-toe  code-golf  geometry  code-golf  number  restricted-source  new-years  expression-building 

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