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

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

10
Kaadiシステムのデコード
埋もれた宝の山を描いた古いインドの写本に出会いました。原稿には宝物の場所も記載されていますが、一部の重要な数字は間接的にテキストにエンコードされています。テキストは、より一般的な「カタパヤディ」システムの制限されたサブセットである「カアディ」システムを使用していることがわかります。 (カタパヤディシステムは、数字を文字としてエンコードする古代インドのシステムで、長い数字を覚えるためのニーモニックとしてよく使用されます。) ここでのタスクは、Kaadiシステムでエンコードされたテキストをデコードし、数値を出力することです。 詳細 入力文字 KaadiシステムはKatapayadiシステムのルールに基づいていますが、子音の最初の行のみを使用します。ここのテキストはラテンアルファベットに音訳されており、次のもののみが含まれていることがわかっています。 母音「a」、「e」、「i」、「o」、「u」 子音「g」、「k」、「c」、「j」、およびそれらの大文字の形式(これらの子音の吸引形式を表す)、および「ṅ」および「ñ」。 (言語でより便利な場合は、「ṅ」を「ng」、「ñ」を「ny」として受け取り、処理することもできます。) 値の割り当て このシステムでは、 母音が続く子音にはそれぞれ数字が関連付けられます。これらは: 'k'=>1, 'K'=>2, 'g'=>3, 'G'=>4, 'ṅ'=>5, 'c'=>6, 'C'=>7, 'j'=>8, 'J'=>9, 'ñ'=>0 ただし、これらの子音の後に母音が続く場合にのみ、これらの値が適用されることに注意してください。 (kacCiと同じ値を持ち、kaCikaCi中央のcには母音が伴わないため、は =(1,7))。 さらに、2つの母音の最初の母音または配列は0を表し、aikaCi次のようになりますai、ka、Ci=(0,1,7) テキストの真ん中の他の場所にある余分な母音にkauCiaは値がありません:kaCiはと同じで、余分な母音は無視できます。 最終的な数値 文字の数字が計算されると、それらの数字の逆順として最終的な数値が取得されます。つまり、テキストの最初の数字が最終値の最下位桁になります。 例えば。 GucCihas GuとCi、(4、7)なので、最終値は74 kakakaGoです。(1,1,1,4)なので、答えは4111です。 guṅKoある(3,2)ので、(23をコードgungKoASCIIを使用する場合-同等。) 入力 Kaadiエンコードされたテキストを含む文字列 母音と上記の子音のみが含まれます 母音は常に小文字で、2個以下のグループで発生します Unicode文字「ṅ」と「ñ」またはASCII同等の「ng」と「ny」のいずれかとして、5と0の文字を受け入れることを選択できます(どちらの形式でも小文字です) スペースや句読点がないと仮定できます 出力 上記の規則で与えられたテキストの数値 空の入力の場合、0に加えて、選択した言語の空の出力またはfalse-y出力が受け入れられます 無効な入力(母音と上記の子音以外の入力)の場合、出力は未定義-何でも テストケース "GucCi" => 74 "kakakaGo" => …

14
[N]とM反復の再帰的に連結された累積和
2つの正の整数NをM取得し[N]、M反復での連結累積和を作成します。最後の反復の結果を出力します。 連結累積合計の定義: 数字Nから始めてシーケンスを定義するX = [N] 追加Xの累積和X 手順を2 M回繰り返します。 ベクトルの累積合計X = [x1, x2, x3, x4]は次のとおり[x1, x1+x2, x1+x2+x3, x1+x2+x3+x4]です。 例N = 1とM = 4: P =累積和関数。 M = 0: [1] M = 1: [1, 1] - X = [1, P(1)] = [[1], [1]] M = 2: [1, 1, 1, 2] - X …
14 code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

4
数学問題表記法を解く
それぞれに整数が与えられた宿題の問題が無限にあると想像してください(!)。 数学問題表記法は、問題指定子を使用して問題のサブセットを記述するための表記法です。 MPN式は、次のもので構成されます。 単一の値。これは、番号を含むセットを表します99 -> {99}。 シンプルな範囲。これは、範囲の最初から最後までのすべての数値を含むセットを表します10~13 -> {10, 11, 12, 13}。左側または右側が欠落している場合、それぞれ-InfinityまたはInfinityと見なされます~10 -> {x|x ≤ 10}。~ -> ℤ。 「スキップ」と別のMPN式が続くMPN式。これは、2つのセットの差を表します10~20 skip 12~14 -> {10, 11, 15, 16, 17, 18, 19, 20}。 コンマで区切られた2つのMPN式。これは、2つのセットの和集合を表します1,8~9,15~17 -> {1,8,9,15,16,17}。 「スキップ」演算子はコンマ演算子よりも厳密にバインドするため、16,110~112 skip 16 -> {16,110,111,112}16はset {110,111,112}に含まれないため、16を除外することは問題になりません。 曖昧さをなくすために括弧で式を置くこともできます: 1~9 skip (2~8 skip (3~7 skip (4~6 skip 5))) -> …

13
永続的に自己修正するコード
現在、ほとんどの言語にはコードを「自己修正」する非常に簡単な方法があることがわかっています。ただし、実際にコードを変更してその一部をディスク上で編集する場合はどうでしょうか? あなたの目標は、数字を出力するコードを作成し、フィボナッチ数列の次の数字で数字を置き換えるように独自のファイルを編集することです: $ ./program 1 $ ./program 1 $ ./program 2 $ ./program 3 $ ./program 5 [etc...] ルール コードの「外側」に番号を保存することはできません。コメントなし、スクリプトに終了するよう指示せず、EOFなしなど コードが任意のファイル名で機能する場合、バイト量から2を引き$BYTESNOW ($ORIGINALBYTES - 2)、タイトルを記述します。(ファイル名は、任意の英数字ファイルパスの範囲内であると想定されます。) コードは、外部の配管支援なしで、出力をファイルに単独で書き込む必要があります。 コードは1または0から開始できます。関係ありません。

4
シンプルなきれいなコメントツールを作成する
チャレンジ: 一部のascii-artは作成が苦痛ですが、特にコードが密集している場合は、コードのコメントを読みやすくします。課題は、コメントを矢印付きの単純なASCIIアートに変換する単純なツールを作成することです。変更するコメントは空のコメントで区切られます。 たとえば、Haskellのコメント構文を想定して、これを変換します。 -- -- Here's a thing -- Here's another thing -- The most important thing -- * * * -- f x=x+1*x*1*1*0 これに: -- /------------< Here's a thing -- | /-------< Here's another thing -- | | /-< The most important thing -- | | | -- v …

12
そして、すべての人々が言っ​​た...
目的文字[またはを含まないテキストの入力を前提として]、次のアクションを実行します。 すべてのインスタンスのためのAmen少なくとも一つの大文字で(そのすべてのインスタンスAmenを除くamen)、同じことを出力Amen(時価総額を保持)。 /all the people said[?: ]/i(正規表現である)のすべてのインスタンスに対して、出力も行いますAmen(どんな場合でも問題ありません)。 すべての出力の後に、改行、スペース、無などの定数セパレーターを選択できます。 これはcode-golfであるため、バイト単位の最短プログラムが優先されます。 IOの例 Input: I said AMEN! AMEN, PEOPLE! Output: AMENAMEN ; any separator is fine, I choose none. Input: amen amen amen amen Output: ; nothing Input: ; empty Output: ; nothing Input: *blah blah blah* And all the people said? Output: …

1
カニンガムチェーンのカウント
素数は常に人々を魅了してきました。2300年前、ユークリッドは彼の「要素」に書いた 素数とは、単位だけで測定されるものです。 つまり、素数は1(またはそれ自体で)割り切れるだけです。 人々は常に素数間の関係を探しており、(「面白い」のような)かなり奇妙なものを思いついてきました。 たとえば、Sophie Germainプライムは、プライムpで2*p+1もあるプライムです。 安全素数は素数であるpそのため(p-1)/2正確ソフィー・ジェルマン素数の下位条件である、また、素数です。 これらは、この課題で私たちが探しているものに関連しています。 A カニンガムチェーンタイプの私は最後のものを除くすべての要素がある素数のシリーズです、ソフィー・ジェルマン素数と、最初のものを除くすべての要素がある安全素数。このチェーンの要素の数は、その長さと呼ばれます。 これは、プライムから始めてp計算することを意味しますq=2*p+1。qが素数である場合、長さ2のタイプIの Cunnighamチェーンがあります。次に2*q+1、次の生成された数が合成されるまでテストなどを行います。 タイプIIのカニンガムチェーンは、ほぼ同じ原理に従って構築されますが、唯一の違い2*p-1は各段階で確認することです。 Cunninghamチェーンの長さは1です。つまり、2 * p + 1も2 * p-1も素数ではありません。これらには興味がありません。 カニンガムチェーンの例 2長さ5のタイプIのチェーンを開始します。 2, 5, 11, 23, 47 次に構築される数95は、素数ではありません。 これはまた、以下のことを教えてくれる5、11、23および47タイプのいずれかのチェーンを開始していない私を、それが要素に先行する必要があるため、。 2また、長さ3のタイプIIのチェーンを開始します。 2, 3, 5 次はで9、これは素数ではありません。 11タイプIIを試してみましょう(以前にタイプIから除外しました)。 さて、21次は、素数ではないので、この「チェーン」の長さは1になりますが、このチャレンジではカウントしません。 チャレンジ n入力として数値を指定すると、少なくとも長さ2のタイプIまたはIIのn番目のカニンガムチェーンの開始番号を書き込み/返すプログラムまたは関数を記述し、その後にスペース、それに続くチェーンのタイプ(IまたはII)、その後にコロン、その後にそのタイプのチェーンの長さが続きます。プライムが両方のタイプのチェーン(タイプI およびタイプII)を開始する場合、タイプI のチェーンが最初にカウントされます。 例: 2 I:5 nこれは、以前に開始された任意のタイプのチェーンの一部である可能性があることに留意してください。その場合、そのタイプのチェーンの開始番号と見なされるべきではありません。 これがどのように始まるのか見てみましょう から始め2ます。これは最初の素数であるため、を含む下位の素数で始まるチェーンがないことを確認できます2。 タイプIのチェーン内の次の数は次のようになります2*2+1 == 5。5素数なので、少なくとも長さ2のチェーンが既にあります。 これを最初のチェーンとしてカウントします。タイプIIはどうですか?次の番号はになります2*2-1 …

6
制御不能の丸めエラー
バックグラウンド 最近、小さな会計事務所に雇われました。会計の世界はあなたにとっていくぶん外国のものなので、あなたがすべての専門家のガイドラインに従っているかどうかはわかりません。特に、これらすべての数値をいつ、どの方向に丸めるべきかわからないので、ほとんどの場合、あなたはそれを翼に乗せて最善を望みます。 入力 入力は、単純な計算を表す単一の文字列です。文字で区切られたいくつかの非負の整数が含まれています+-*/。文字列は左から右に読み取られ、通常の優先順位規則は無視されるため、"23+1*3/4"「23で始まり、1を加算し、3を乗算し、4で除算する」ことを意味します。結果は18になります。0(0それ自体を除く)、またはゼロによる除算。 出力 計算の各段階で、結果を最も近い整数に切り上げまたは切り捨てるか、そのままにしておくことができます。最後に、整数の結果を得るために切り上げまたは切り捨てます。あなたの出力は、そのような計算から生じる可能性のある整数のリストであり、ソートされ、重複はありません。 ルール 完全なプログラムまたは関数のいずれかを作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 テストケース "42" -> [42] "2+0+4-0" -> [6] "23+1*3/4" -> [18] "5/2" -> [2,3] "5/2+7/3*6-1" -> [17,18,19,23] "23/2/2*30-170/3" -> [-7,-6,-2,-1,0,1,3,4] "1/3*2*2*2*2*2*2" -> [0,16,20,21,22,24,32,64] "1/3*9" -> [0,3,9]

12
Brainf * ckish方向
あなたのタスク-あなたがそれを受け入れることを選択した場合-は、方向を与えるトークンの文字列(左から右、任意の長さ)を解析および評価するプログラムを構築することです-左または右。4つの可能なトークンとその意味は次のとおりです。 > go right one single step < go left one single step -> go right the total amount of single steps that you've gone right, plus one, before you previously encountered this token and reset this counter to zero <- go left the total amount of single steps that …

3
Pythlike Stringの縮小
Pythは、おそらく最も成功した汎用ゴルフ言語です。新しい言語の結果としてやや低下していますが、2014年から2016年にかけて、Pythの簡潔な構文、絶え間ない更新、オーバーロード、および(その時代から)多くのビルトインが大部分の質問でお気に入りになりました。 Pythコードは読みにくいことがよくあります。デバッグモード(Pythonのコンパイル済み)の出力でさえ、長い行で構成されていることが多く、場合によっては、括弧が10段ネストされています。ただし、正しくフォーマットされたPythは非常に読みやすくなっています。 Play the Word Chainの @isaacgによって書かれたPythコードの一部を次に示します。 .MlZfqhMtTeMPT+Lzs.pMyQ このように読みやすくなっています。 .M Filter by gives-maximal-value of l Z lambda Z:length(Z) over f filter by (lambda T: q equal hM t T head-map tail T eM P T end-map Pop T) +L Append z to each element in z s .pM y Q …

30
プライムパワーからプライムを回復する
定義:素数はp nの形式で表現できる自然数です。pは素数で、nは自然数です。 タスク:プライムパワーp n > 1の場合、プライムpを返します。 テストケース: input output 9 3 16 2 343 7 2687 2687 59049 3 得点:これはcode-golfです。バイト単位の最短回答が優先されます。
13 code-golf  arithmetic  primes  king-of-the-hill  python  board-game  code-golf  number  subsequence  code-golf  ascii-art  code-golf  array-manipulation  decision-problem  grid  fastest-algorithm  logic-gates  logic  code-golf  cards  code-golf  rational-numbers  code-golf  math  number  sequence  code-golf  array-manipulation  integer  code-golf  number  array-manipulation  code-golf  number  sequence  decision-problem  code-golf  ascii-art  number  code-challenge  sequence  arithmetic  sorting  code-golf  date  fastest-algorithm  code-golf  string  number  random  combinatorics  code-golf  combinatorics  code-golf  ascii-art  base-conversion  code-golf  array-manipulation  code-golf  string  code-golf  string  number  arithmetic  code-golf  kolmogorov-complexity  code-golf  string  array-manipulation  json  code-golf  puzzle-solver  code-golf  binary  graph-theory  code-golf  arithmetic  haskell  code-golf  string  cipher  code-golf  code-golf  string  parsing  alphabet  code-golf  string  code-golf  ascii-art  code-golf  string  number  code-golf  string  balanced-string 

11
緩い範囲の解釈
緩い範囲の解釈 ListSharpは、多くの機能を備えたインタープリター型プログラミング言語です。これらの機能の1つは、次のように機能する1つのインデックスベースの範囲作成者です。 あなたはと範囲を定義する(INT) TO (INT)か、単に(INT)どこの両方または単一のintは分からに行くことができる最大のint32値 次に、これらの範囲を使用して、境界を超えることを恐れずに配列の要素を抽出できます したがって: 1 TO 5 生成: {1,2,3,4,5} 3 生成: {3} AND演算子を使用して範囲を追加できます 1 TO 5 AND 3 TO 6 生成: {1,2,3,4,5,3,4,5,6} これは負の数でも機能することを忘れないでください 3 TO -3 生成: {3,2,1,0,-1,-2,-3} 課題は次のとおりです。 入力 文字配列および文字列として以前に定義された範囲句 出力 1インデックスの要素は範囲の位置に基づいています(非既存/負のインデックスは空の文字に変換されます) 勝つ方法 コードゴルフの挑戦として、あなたは勝つために最短のバイト数でプログラムを作成することになっています 空の文字は存在しないことが指摘されているため、無視する必要があります(ここでは、わかりやすくするためだけに示しましたが、混乱させています) テストケース: input array is: {'H','e','l','l','o',' ','W','o','r','l','d'} range clause: "1 TO 3" …
13 code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

1
1D言語の解析
0、1、2、および角かっこのみを含む文字列を指定すると、文字列の文法ツリーが出力されます。 Aに2は2つの引数が必要です-左に1つ、右に1つ A 1は単一の引数を必要とします-左または右のいずれかに A 0は引数を必要とせず、基本ケースです 角括弧のペアは1つの引数としてカウントされ、角括弧の内容は文字列の残りの部分とは別に評価されます。ネストされたブラケットが可能です 入力文字列は常に完全なツリーであり、文字が落ちることはありません。また、文字列には単一の正しい解しかありません。関数は可換であり、引数の配列は2受け入れことに。これらの要件に適合しない入力を処理する必要はありません。 出力文法形式はfunction(arguments)再帰的に形式になります テストケース 0 --> 0 01 --> 1(0) 020 --> 2(0,0) 101 --> 1(1(0)) 0120 --> 2(1(0),0) 0120210 --> 2(1(0),2(0,1(0))) 01210 --> 2(1(0),1(0)) (020)210 --> 2(2(0,0),1(0)) ((020)20)1 --> 1(2(0,2(0,0)))

3
私は何人の14ersに登りましたか?
登山の用語では、「14er」は14,000フィート以上の標高を持つ山です。ただし、別の違いがあります。ピークが14erとしてカウントされるためには、300フィート以上の「地理的突出」も必要です。つまり、ある14erから別の14erに移動するには、少なくとも 300フィート下がってから再び上昇する必要があります。この例を見てください。ライン1は14,000フィートとしてカウントされ、各ラインは100フィートとしてカウントされます。 /\__/\ / \ / \ 現在、これらのピークの両方には、カウントするのに十分な標高がありますが、2つの別個のピークとしてカウントするのに十分な標高の低下はありません。したがって、これらの1つは14erとしてカウントされ、もう1つは単に「部分的なピーク」です。次に、2つのピークが2つの別個の14erとしてカウントされる例を示します。 /\ /\ / \ / \ / \/ \ / \ また、2人の14erの間で減少の部分的なピークがあります。最後の山脈のわずかに変更されたバージョンは次のとおりです。 /\ /\ / \/\ / \ / \/ \ / \ この山岳地帯は2つの14erとしてもカウントされます。 山岳地帯のascii-art表現を取るプログラムまたは関数を作成し、14人の人がその範囲内にいることを返す必要があります。入力は、2Dの文字配列、改行を含む文字列、またはその他の区切り文字を含む文字列など、最も便利な形式で入力できます。すべての入力には文字のみが含まれ、/\_各行の長さは同じであると仮定できます(末尾のスペースを含む)。また、山脈はa /またはaで左下隅から始まると仮定することもでき_ます。 山の最後のセクションが一番下の行にない場合、山はその後しか減少しないと仮定できます。たとえば / / / 単一の14erとしてカウントされます。 無効な山脈を処理する必要はありません。 サンプルI / Oは次のとおりです。 /\___/\_ / \ /\ / \ / …

1
SASマクロ変数を解決する
SASプログラミング言語は、まだ使用中今日の1966年に不格好、古風な言語デートバックです。元のコンパイラはPL / Iで記述されており、実際、構文の多くはPL / Iから派生しています。SASには、PL / Iの言語から派生したプリプロセッサマクロ言語もあります。この課題では、SASマクロ言語のいくつかの単純な要素を解釈します。 SASマクロ言語では、%letキーワードを使用してマクロ変数が定義され、ログへの出力はで行われ%putます。ステートメントはセミコロンで終わります。ここではいくつかの例を示します。 %let x = 5; %let cool_beans =Cool beans; %let what123=46.lel"{)-++; マクロ変数名は大文字と小文字を区別せず、常に正規表現と一致します/[a-z_][a-z0-9_]*/i。この課題のために、次のように言います。 マクロ変数は、印字可能なASCII文字のみで完全に成るの値を保持することができます以外に ;、&と% 値に先頭または末尾のスペースはありません 値は255文字を超えることはありません 値は空かもしれません 値の中の括弧と引用符は一致しない場合があります そこの前後にスペースの任意の量であることができる=で%let声明と、このスペースは無視されるべきです ステートメント;内の端末の前に任意の量のスペースがあり%let、このスペースも同様に無視する必要があります マクロ変数が呼び出されるとき、その値に「解決」すると言います。マクロ変数は、先頭に付加することで解決され&ます。識別子の終わりを示すオプションの末尾があり.ます。例えば、 %put The value of x is &X..; The value of x is 5.ログに書き込みます。1つの期間がに消費され&X.、解決されるため、2つの期間が必要であることに注意してください5。またx、小文字で定義したにもかかわらず、マクロ変数名では大文字と小文字が区別されないため&X、同じ&xです。 ここで注意が必要です。複数&のを一緒に連結して変数を解決&し、同じレベルのネストを同時に解決できます。例えば、 %let i = 1; %let coolbeans1 = broseph; …

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