タグ付けされた質問 「parsing」

このタグは、入力を解析することが課題の大部分/主要な部分である課題を示します。

4
ゲッターをゲット
タスク 私は誰もが自動コード生成と仕事中の時間の節約を愛していると思います。日中は多くのクラスとメンバーを作成するgetters必要があり、それらすべてを手動で作成する必要はありません。 タスクはgetters、すべてのクラスメンバーに対して自動的に生成されるプログラムまたは関数を作成することです。 入力 私たちの言語では、オブジェクトは非常に単純です。クラスおよびメンバーの名前は、文字から始まる必要[a-zA-Z]があり、文字のみを含めることができます[a-zA-Z0-9]。以下に例を示します。 class Stack { public overflow; protected trace; private errorReport; } 出力 これは、指定された例に基づいた有効な出力です。 class Stack { public overflow; protected trace; private errorReport; public function getOverflow() { return this->overflow; } public function getTrace() { return this->trace; } public function getErrorReport() { return this->errorReport; } } ゲッター getterメソッドの要件は次のとおりです。 …
13 code-golf  string  syntax  code-golf  math  primes  rational-numbers  code-golf  graphical-output  image-processing  code-golf  kolmogorov-complexity  music  audio  code-golf  string  code-golf  math  geometry  code-golf  math  sequence  combinatorics  code-golf  game  grid  board-game  code-golf  restricted-source  array-manipulation  source-layout  code-golf  base-conversion  binary  code-golf  math  physics  code-golf  math  number  date  expression-building  code-golf  array-manipulation  graph-theory  decision-problem  popularity-contest  error-correction  code-golf  kolmogorov-complexity  geometry  grid  code-challenge  arithmetic  combinatorics  set-partitions  code-golf  kolmogorov-complexity  sequence  fibonacci  code-golf  restricted-source  pristine-programming  code-golf  code-golf  string  kolmogorov-complexity  code-golf  arithmetic  code-golf  string  parsing  code-golf  code-golf  sorting  counting  permutations  3d  code-golf  code-golf  ascii-art  music  code-golf  string  code-golf  string  ascii-art  code-golf  string  code-golf  quine  polyglot  code-golf  math  string  code-golf  internet 

7
大文字や句読点を変更せずに単語を逆順にする
文字列内の各単語を逆順に並べ、句読点と大文字を最初の場所に保持しながら、文字数が最小のプログラムを作成します。 「単語の順序」とは、各単語が空のスペース( "")で分割されていることを意味するため、短縮などは1つの単語として扱われます。収縮のアポストロフィは同じ場所にとどまる必要があります。(「しない」=>「いいえ」)。 (句読点は、a〜z、A〜Z、または空白*以外の文字を意味します)。 大文字の番号を使用できないため、このリストから番号が削除されました。数字は句読点として扱われるようになりました。 たとえば、入力の場合: Hello, I am a fish. 出力されるはずです: Olleh, I ma a hsif. Hは以前は同じ場所で大文字だったため、最初の単語の最初の文字であるOが大文字になっていることに注意してください。 コンマとピリオドも同じ場所にあります。 その他の例: This; Is Some Text! 出力します Siht; Si Emos Txet! 任意の言語を使用できます。キャラクターの数が最も少ないプログラムが勝ちます。

10
CSVを並べる
概要: あなたの仕事は、CSV入力をkey=value形式で取り、より整理された(以下を参照)方法で並べることです。 入力: 常にstdin経由。レコードは常に次の形式になりますkey=value。 foo=bar,baz=quux abc=123,foo=fubar baz=qwe,abc=rty,zxc=uiop,foo=asdf 事前に可能なキーのリストはありません。入力テキストでそれらを見つける必要があります。 入力の終わりは、OSに適切なEOF実装が何であれ、によって通知さEOFれます。 出力: 出力の最初の行には、すべてのキーのリストがアルファベット順に表示されます(キーがすべて数字の場合でも)。その後、キーをリストせずに、各レコードを同じCSV形式で適切な番号見出しで印刷します。したがって、上記の例の場合、正しい出力は次のようになります。 abc,baz,foo,zxc ,quux,bar, 123,,fubar, rty,qwe,asdf,uiop よくある質問: 不適切な形式の入力について心配する必要がありますか? いいえ。プログラムは、入力が正しくフォーマットされていない場合(たとえば、 foo,bar,baz 特殊文字のエスケープを処理するにはどうすればよいですか? あなたは、フォーマットの一部ではない追加のデータ,や=データにはないと仮定するかもしれませんkey=value。"このコンテストでは特別な意味はありません(従来のCSVではありますが)。また、特別なものでもありません。 行は次の正規表現と一致する必要があります。 ^([^=,]+=[^=,]+)(,[^=,]+=[^=,]+)*$ したがって、キーと値の両方が一致します [^=,]+ 何についてのCRLF対LF? プラットフォームに適した区切り文字を選択できます。ほとんどの言語は、特別な区切りコードなしでこれを処理します。 最後のいくつかの列が存在しない場合、末尾のコンマを印刷する必要がありますか? はい。例を参照してください。 CSVパーサーまたは他の同様の外部ツールは許可されていますか? いいえ。自分でデータを解析する必要があります。

18
シンプルなCSV / DSVインポーター
これの逆以上に少し。 In: 複数行のDSVデータと単一の区切り文字。DSVは、ファイル、ファイル名、改行で区切られた文字列、文字列のリストなどとして取得できます。すべてのレコードには同じ数のフィールドがあり、空のフィールドはありません。データには区切り文字が含まれておらず、引用やエスケープのメカニズムはありません。 Out: DSVを表すデータ構造。たとえば、文字列のリストのリストまたは文字列のマトリックス。 例 ["here is,some,sample","data,delimited,by commas"]および",": [["here is","some","sample"],["data","delimited","by commas"]] ["hello;\"","\";world","\";\""]および";":( [["hello","\""],["\"","world"],["\"","\""]]この例ではJSONを使用しているためエスケープ) ["to be or not","that is the question"]および" ": [["to","be","or","not"],["that","is","the","question"]]

4
線形方程式を解く
この課題は、より良い仕様です。 スペック プログラムは、単一の変数を含む線形方程式を取り、xの値を出力しますx。 入力/解析 入力には、数字、演算子、括弧(())、、xおよび=記号のみが含まれます(これは空白がないことを意味します)。 括弧は常にバランスが取れています。 常に少なくとも1つありxます。のx前に数字を付けることができます。 すべての方程式の結果は1つになります。 番号は、以下の手順で定義することができます。数値は、正規表現で定義できます-?(\d+(\.\d+)?|\.\d+)。 正規表現を話さない場合:数字は次のように定義されます 0-9 それがあるかもしれません -冒頭に負の意味 そして、そこにもいくつかの桁です。それらが数字でない場合、小数点があります 小数点が存在する場合、少なくとも1桁がそれに続きます 最大の数値/値は、言語の機能によって定義されます。 オペレータは、のいずれかであります:+-*/、彼らは常に数字、または括弧の間に表示されます これは(5)(5)、簡単にするために有効な入力ではないことを意味します。 カッコ内には、常に有効な式(数字や演算子の有効な組み合わせ)が含まれます。「バランスのとれた」括弧は、すべて(に関連する終了があるため定義されます) 評価 操作の順序に従う必要があり、優先順位は(最高から最低)です。 括弧(最も深くネストされた最初) 乗算と除算 加算と減算 同じ優先順位の2つの演算子が発生した場合は、左->右に進むことをお勧めします 出力 結果を何らかの方法で出力する必要があります。数値の結果だけを出力しない場合は、出力の出力方法を回答で明確にします。出力形式は一貫している必要があります。出力は小数でもかまいませんが、常に合理的であり、精度は言語の精度に制限されます。ご使用の言語が浮動小数点演算をサポートしていない場合にのみ、サポートする必要はありません。 ルール このタスクを単純化するビルトインは許可されますが、明確に追加する必要があります[uses built-in]その答えのヘッダに明確に。これはあなたの答えが勝つことを免除します 「このタスクを単純化する組み込み」は、次のいずれかです。 方程式を取り込み、a /変数の値を出力するもの 方程式を完全に単純化するもの evalまたは関連する関数を使用して、かなりの量の解析を行います。eval線形方程式を解くために(入力の変更を最小限に)使用する場合、および関連する関数の使用は許可されません。 疑問がある場合は、コメントを求めてください。 方程式を解析するビルトインが許可されています 例 3+4=x 7 4+x=5 1 3+3*3=x 12 3x-4=7+2x 11 3--1=x 4 3*(2+4x)=7x-4 -2 …

3
文を作り直す
この課題は2つの部分で構成されています。勝者は、総バイト数が最も少ないソリューションになります。両方の課題に同じ言語を使用する必要があります。 パート1: 入力として有効な単語のみを含む文を受け取り、使用する文字のリスト、各文字の使用回数、元の文の各単語の文字数を出力する関数またはプログラムを作成します。このプログラムからの出力は、次のプログラムへの有効な入力でなければなりません(出力されたとおり) 例と詳細なルールをさらに下に追加します。 パート2: 最初のプログラムからの出力を入力として使用し、この英単語のリストを使用して、出力からの情報を使用して文を再作成する関数またはプログラムを作成します。文は元の文と同じである必要はありません。 詳しくは。ルールと制限: パート1: 最初の入力は、引用符の有無にかかわらず、関数の引数として、または角括弧の有無にかかわらず、STDINからの任意の適切な形式にすることができます。 入力文には、最後のピリオド/ドットを除き、句読点や特殊文字は含まれません。ピリオド記号を除き、入力に含まれるすべての文字は単語リストに含まれます。 文の最初の文字は大文字になり、残りは小文字になります。 パート2の出力は、元の文と同じ大文字で開始する必要があります(したがって、入力を小文字に変換することはお勧めしません(ただし、OK)。 出力は任意の適切な形式にすることができます。 出力を次のプログラム/機能に直接コピーアンドペーストできる必要があります コピーアンドペーストの際に変更を加えることはできません。出力全体を部分的にではなく、全体としてコピーして貼り付ける必要があります。 たとえば、アルファベットのすべての文字、または使用されているもののみのヒストグラムを出力できます(一般的に、パート2を完了するために必要なものは何でも) 複数のオカレンスが繰り返される文字のリストを出力することはできません。例えば、The queue出力が得られないことができますTeeehquu (3,5)、それは次のようになりますTehqu, (1 3 1 1 2),(3 5)。 パート2: プログラム/関数は、パート1からの入力をそのまま受け入れる必要があります(1つの例外、入力としてファイル名を使用することに関する以下のコメントを参照してください)。 入力を解析するために括弧、引用符などが必要な場合、これらはパート1の出力の一部である必要があります。 単語リストはここにあります。 単語リストは、ローカルに保存するかw.txt、URLから取得できます。urlは5バイトとしてカウントされるため、url-shortenerは必要ありません。 プログラムはSTDIN(私はこれが信じているから、入力として名を読まずに、ファイルを開くことができない場合である少なくともPythのためのケースだった)、その後、ファイル名は別々の入力引数として撮影することができます。 出力は、ピリオドとオプションの改行で終わる文(有効な単語のリスト)のみである必要があります。 出力には、パート1の元の文と同じ文字数の単語が含まれている必要があります(正しい順序で) 元の文で使用されたすべての文字は、新しい出力で使用する必要があります。 文は、元の入力文と同じ大文字で始まり、ピリオドで終わる必要があります。 両方の部分: どちらの部分も実行に2分以上かかることはありません(ソリューションに到達するまでランダムに単語を選択することは受け入れられません)。 上記の規則を使用すると、まったく同じ文が再現される可能性がかなり高くなりますが、これは必須ではありません。 例: 以下の例では、いくつかの異なる入力および出力形式が示されています。さらに多くが受け入れられます。 パート1: 入力: Zulus win. 出力タイプ1: Z i l n s …

2
回路図を解釈する
あなたの課題は、論理ゲートを備えた回路図を解釈することです。 論理ゲート(実際にこれらが何をするかを知る必要はありません/このチャレンジを完了するには): およびゲート: a またはゲート: o ナンドゲート: A また、ゲート: O XORゲート: x xnorゲート: X ゲートではない: ~ 最後のゲートを除く各ゲートには2つの入力があります。入力は.、ゲートを中心とした3 x 3の正方形の左上隅と左下隅のaからです。ないため、入力はその左側に直接あります。出力は.、右側に直接あります。 ワイヤは -|\/.= - 右に1本、左に1本の2本のワイヤに接触します。 c-c | 2本のワイヤに接続します。1本は上、もう1本は下です。 c | c /そして\次のように動作します: c c \ / c c . 周囲のすべてのワイヤに接触します: ccc c.c ccc =特別です; 隣接するワイヤを接続します: -=- 2本のワイヤを接続します。以下では \|/ -=- /|\ 反対側の各ワイヤは相互に接続されていますが、他のワイヤは接続されていません(これは、それとは異なるところです.)。 電流が流れるためには、2本のワイヤが両方とも他方に接続されている必要があるため|-、電流は流れません。 …

8
ジミーには新しい靴が必要です!
ジミーは先週、これら すべてのプラットフォーム と ロープで忙しくしており、貧しいジミーには足や足さえありません! あなたの仕事は、複数のジミーを含むストリングを取り、足と靴を与えることです! ジミー文字列の形式で入力を取得する ジミー・ストリング=> /o\ /o\ /o\ とのみ/o\を 含む 入力の各ジミーに次のような足を与えます。 /o\ _/ \_ 次のように、入力されたフローティングヘッドジミー文字列をフィート文字列付きジミーに変換します。 // Input /o\ /o\ /o\ // Output /o\ /o\ /o\ _/ \_ _/ \_ _/ \_ 2人のジミーが近くにいる場合、部屋を空けるために移動しなければなりません。ジミーは常に右に移動して他のジミーの部屋を空けます。 // Input /o\/o\ // Output /o\ /o\ _/ \__/ \_ 遠くにいる他のジミーは、必要でない限り移動してはいけません // Input /o\/o\ /o\ // …

2
nを法とする数論のインタープリター
(私たちの目的のための)数論の文は、次の記号のシーケンスです。 0および'(後継者)-後継者は+1、0'''' = 0 + 1 + 1 + 1 + 1 = 4 +(加算)と*(乗算) = (に等しい) (と)(括弧) 論理演算子nand(a nand bis not (a and b)) forall (ユニバーサル数量詞) v0、v1、v2、など(変数) ここに文の例があります: forall v1 (forall v2 (forall v3 (not (v1*v1*v1 + v2*v2*v2 = v3*v3*v3)))) ここでnot xは省略形ですx nand x-実際の文が使用する(v1*v1*v1 + v2*v2*v2 = v3*v3*v3) nand …
12 code-golf  number-theory  parsing  code-golf  kolmogorov-complexity  code-golf  code-golf  array-manipulation  matrix  code-golf  array-manipulation  code-golf  string  code-challenge  graphical-output  compression  code-golf  kolmogorov-complexity  code-golf  sequence  array-manipulation  code-golf  number  base-conversion  code-golf  string  decision-problem  code-golf  string  ascii-art  code-golf  string  random  code-challenge  brainfuck  code-generation  code-golf  code-golf  quine  code-golf  interpreter  code-golf  interpreter  code-golf  array-manipulation  sorting  code-golf  halting-problem  code-golf  javascript  code-golf  algorithm  code-golf  arithmetic  code-golf  math  counting  code-golf  math  code-golf  decision-problem  radiation-hardening  code-golf  conversion  bitwise  code-golf  number  decision-problem  code-golf  string  decision-problem  code-golf  random  game  code-golf  ascii-art  graphical-output  code-golf  decision-problem  binary-tree  tree-traversal  code-challenge  array-manipulation  code-challenge  graphical-output  path-finding  test-battery  algorithm  code-golf  integer  factorial  code-golf  binary-tree  code-golf  grid  graph-theory  code-golf  regular-expression  quine  code-golf  encoding  code-golf  king-of-the-hill  javascript 


3
同じ名前、ラメ!
名前のリストが指定されたときに、指定された名前の重複が姓の一意の短縮バージョンを持つリストを出力または返す関数またはプログラムを作成します。 入力: 名前のリスト。名前は、スペースで区切られた名と姓で定義されます。名前は、大文字と小文字のみを含む空でない文字列です。リストは、文字列の配列、または定数を非アルファ、非スペース文字で区切った名前にすることができますが、出力は入力と同じ形式である必要があります。 出力: これらの規則によって変更された、入力と同じ順序および形式の入力された名前のリスト: 一意の名の場合、名のみを出力します 同じ名前を共有する名前の場合: 彼らの名に加えて、別の名前と共有されていない姓の最も短い一意のバージョンを追加し、その後にピリオドを付けます。たとえば、次の John Clancy, John SmithようJohn C.,John S.にJames Brown, James BratteなりますJames Bro.,James Bra. ある姓が別の姓のサブセットである場合(など)Julian King,Julian Kingsley、ピリオドなしの小さい姓の完全な姓を返します。例は次のようになりますJulian King,Julian King. 基本的には期間が正規表現を表し.+、唯一 1名がそれと一致している必要があります。 あなたは誰も同じ名と同じ姓を共有しないと仮定するかもしれません 名前は大文字と小文字が区別されます テストケース: John Clancy,Julie Walker,John Walker,Julie Clancy -> John C.,Julie W.,John W.,Julie C. Julian King,Jack Johnson,Julian Kingsley > Julian King,Jack,Julian King. Jack Brown,Jack …

1
I <3条件
最終的に、コードには非常に長く退屈に見える条件がたくさんあります。 if flag == 1: while have != needed: if type == 7: これらは、はるかに愛らしい&lt;3条件付きの対応物に変換できます。 if abs(flag - 1) + 2 &lt;3: while 3 - abs(have - needed) &lt;3: if 2 + abs(type - 7) &lt;3: 仕事 あなたの仕事は、条件を取り、の観点からそれを作ることです&lt;3。重要な唯一の間隔は、&lt;との間に何もないことです3。 条件文は、いずれかの方法で区切ら二つの表現になります==、!=、&gt;、&lt;、&gt;=または&lt;=。 式には、加算、減算、単項否定(-something)のみが含まれます。各変数または数値の前+または-前に1つまたは前があります(最初または何もないまたは-前にあるものを除く)。 番号はになり[0-9]+、変数はになります[a-z]+。答えを使用する必要がある場合|x|(の絶対値x)、abs()関数を使用します。すべての変数が整数であり、入力内のすべての数値定数が&lt;1000であると仮定できます。 出力は、最も単純な形式である必要はありません。上記のような条件付きである必要があります。つまり、1つの条件付き記号で区切られた2つの式のみである必要がありますがabs、有効な式を囲んで関数を使用することもでき、有効性の観点からは変数のように機能します。 入力に変数の値の出力がない場合は、常にfalseであるが、に関しては条件を出力します&lt;3。 課題の一部は、その方法を見つけることですが、have != needed上記の手順は次のとおりです。 have != needed have - …

2
テレビには何がありますか?
チャレンジ ここにあるサイトのXMLデータを使用して、現在BBC 1に表示されているプログラムの名前を表示するプログラムを作成します。 情報 すべての時間はロンドン時間で与えられます(投稿時はGMT + 1、10月30日以降はGMT + 0)。したがって、現地時間をロンドン時間に変換する必要があります。 各プログラムには開始時刻と終了時刻が与えられます。現在の時刻がプログラムの開始時刻の後、終了時刻の前である場合、そのプログラムは現在表示されています。とにかくあなたのプログラムは重複を処理するかもしれません。 出力は、次のようにプログラムのタイトルである必要があります。 BBC News ただし、プログラムに字幕がある場合(subtitleタグの存在によって示される)、出力は次のようになります。 Steptoe and Son: The Piano どこSteptoeと息子はタイトルで、ピアノが字幕です。字幕付きのプログラム例は次のとおりです。 &lt;programme&gt; &lt;subtitle&gt;Newcastle&lt;/subtitle&gt; &lt;title&gt;Flog It!&lt;/title&gt; &lt;end&gt;1710&lt;/end&gt; &lt;start&gt;1610&lt;/start&gt; &lt;desc&gt; Antiques series. Paul Martin presents from the Discovery Museum in Newcastle. The items uncovered include a book of autographs with a local connection. …

1
ジェイソンが彼のJSONをフォーマットするのを手伝ってください
Jasonには大きなJSONがありますが、判読できないため、彼はそれをきれいにする必要があります。 フォーマット仕様 JSONには4つの異なるタイプがあります。 数字; ただ0-9 ストリング; で"エスケープされた二重引用符付き文字列\ 配列; で区切られ[]、アイテムはで区切られ,、アイテムはこれらのタイプのいずれかになります オブジェクト; で区切られ{}、formatはkey: valuekeyが文字列で、valueはこれらのタイプのいずれかです 間隔 配列には、項目間のコンマの後にちょうど1つのスペースが必要です。 オブジェクトには、キーと値の間にスペースが1つだけあるはずです。 : くぼみ 各ネストレベルは、以前よりも2インデントされます 各オブジェクトのキーと値のペアは、常に独自の行にあります。オブジェクトはインデントされます 配列に別の配列またはオブジェクトが含まれる場合、配列は複数行にわたってインデントされます。それ以外の場合、配列は1行のままです ルール このタスクを単純化するビルトインは許可されていません。 いつものように、標準的な抜け穴は許可されていません 例 [1,2,3] [1, 2, 3] {"a":1,"b":4} { "a": 1, "b": 4 } "foo" "foo" 56 56 {"a":[{"b":1,"c":"foo"},{"d":[2,3,4,1], "a":["abc","def",{"d":{"f":[3,4]}}]}]} { "a": [ { "b": 1, "c": "foo" }, …
11 code-golf  string  json  code-golf  number  code-golf  image-processing  code-golf  string  code-golf  number  sequence  arithmetic  number-theory  code-golf  string  code-golf  string  counting  code-golf  ascii-art  code-golf  math  code-golf  tips  code-golf  string  code-golf  grid  graph-theory  code-golf  parsing  interpreter  brainfuck  code-golf  math  arithmetic  number-theory  programming-puzzle  c#  code-golf  dominoes  code-golf  tips  code-golf  string  grid  crossword  code-golf  string  code-golf  kolmogorov-complexity  code-golf  number  sequence  code-golf  string  math  number  number-theory  primes  fastest-code  code-golf  number  code-golf  string  code-golf  ascii-art  number  kolmogorov-complexity  code-golf  string  grid 

4
そのHTMLエンティティは何のキャラクターですか?
目標は本当にシンプルです。入力として文字列を受け取り、次の文字(大文字のバリアントを含む)に対応するすべてのHTMLエンティティを解析します。 áàãâäéèêëíìîïóòõôöúùûüýÿ 解析ルール: 各エンティティは次で始まり、次&amp;で終わる; の後の最初の文字&amp;は変更された文字になります(大文字と小文字が重要です!) 残りの文字は、(使用アクセントの名前を参照してacute、grave、circ、tildeおよびuml)。アクセント名は小文字でなければなりません!* そのリストにない文字を生成、またはそれが無効である任意のHTMLエンティティは、手つかずのままにしておく必要があり(例:&amp;amp;、&amp;etilde;、&amp;a;) 数値エンティティは上記のルールに適合しないため、無視する必要があります この変更は、2016年2月18日に導入されました。大文字のアクセント名を持つHTMLエンティティを受け入れる既存の回答はすべて有効です。今後の回答は、このルールに従う必要があります。 例: &amp;aacute; //á T&amp;eacute;h&amp;egrave;h //Téhèh an &amp;amp; //an &amp;amp; 出力: 出力は、ISO-8859- X(1-15)、windows-1252、またはUTF-8 / 16/32になります。有効なエンコーディングを1つだけ 選択して、任意の出力に使用できます。入力はASCIIであると安全に想定できます。 次のいずれかが有効な出力です&amp;aacute;: á(ISO-8859-1 / 15またはwindows-1252、に相当\xE1) á(UTF-8と同等\xC3\xA1または\u00E1) aÌ(UTF-8と同等a\xCC\x81またはa\u0301) HTMLエンティティを使用しない、発音区別記号の任意の組み合わせ。 出力は、レンダリング/表示するときに、リスト上の文字と視覚的に類似している必要があります。 すべての標準的な抜け穴とビルトイン *は許可されていません。これはcode-golfであるため、最短の回答が優先されます。 *この変更は、ボーナスとペナルティが大幅に不承認になったために行われたものであり、作成時には回答を無効にしません。

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