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

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

30
Stroustrupの神話「C ++は大規模で複雑なプログラム専用」を暴く
Stroustrupは最近、C ++に関する人気の神話を暴く一連の投稿を投稿しました。5番目の神話は、「C ++は大規模で複雑なプログラム専用です」です。それを暴くために、彼はWebページをダウンロードし、そこからリンクを抽出する簡単なC ++プログラムを書きました。ここにあります: #include <string> #include <set> #include <iostream> #include <sstream> #include <regex> #include <boost/asio.hpp> using namespace std; set<string> get_strings(istream& is, regex pat) { set<string> res; smatch m; for (string s; getline(is, s);) // read a line if (regex_search(s, m, pat)) res.insert(m[0]); // save match in set return res; …

16
SVGCaptchaを倒す
私が出くわしたSVGCaptcha、そしてすぐに、それは悪い考えを知っていました。 コードが生成するSVGイメージから検証コードを抽出することにより、これがいかに悪いアイデアであるかを示してほしい。 サンプル画像は次のようになります。 サンプル画像のソースは次のとおりです。 <?xml version="1.0" encoding="utf-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" width="200" height="40" > <rect x="0" y="0" width="200" height="40" style="stroke: none; fill: none;" > </rect> <text style="fill: #4d9363;" x="5" y="34" font-size="20" transform="translate(5, 34) rotate(-17) translate(-5, -34)">8</text> <text style="fill: #be8b33;" x="125" y="29" font-size="21" transform="translate(125, 29) …

30
「a」と「b」の数は等しくなければなりません。コンピューターを手に入れましたか?
人気のある(必須の)コンピューターサイエンスの本、Peter Linzによる「形式言語とオートマトンの紹介」では、次の形式言語が頻繁に述べられています。 主に、この言語は有限状態オートマトンで処理できないためです。この表現は、「言語Lは「a」と「b」が続くすべての文字列で構成され、「a」と「b」の数は等しくゼロではないことを意味します。 チャレンジ 「a」と「b」のみを含む文字列を入力として取得し、この文字列が正式な言語Lで有効かどうかを示す真理値を返す/出力する作業プログラム/関数を作成します。 プログラムは、ネットワーク、外部プログラムなどの外部計算ツールを使用できません。シェルはこの規則の例外です。たとえば、Bashはコマンドラインユーティリティを使用できます。 プログラムは、結果を「論理的な」方法で返す/出力する必要があります。たとえば、0の代わりに10を返す、「ビープ音」、stdoutへの出力などです。詳細はこちら。 標準コードのゴルフ規則が適用されます。 これはコードゴルフです。バイト単位の最短コードが優先されます。幸運を! 真実のテストケース "ab" "aabb" "aaabbb" "aaaabbbb" "aaaaabbbbb" "aaaaaabbbbbb" 偽のテストケース "" "a" "b" "aa" "ba" "bb" "aaa" "aab" "aba" "abb" "baa" "bab" "bba" "bbb" "aaaa" "aaab" "aaba" "abaa" "abab" "abba" "abbb" "baaa" "baab" "baba" "babb" "bbaa" "bbab" "bbba" "bbbb"

28
ファイを計算する(パイではない)
いいえ、私は意味しないϕ = 1.618...とπ = 3.14159...。私は機能を意味します。 φ(x)は、にx比較的素数であるかそれ以下の整数の数ですx。 π(x)は、以下の素数の数ですx。 「not pi」がπ̅(x)であり、それ以下の複合体の数になるように定義するとしましょうx。 仕事 厳密に正の整数を指定してx、φ(π̅(x))を計算しますます。スコアリングはバイト単位です。 例 各行は、入力(1〜100を含む)と、スペースで区切られた対応する出力で構成されます。 1 0 2 0 3 0 4 1 5 1 6 1 7 1 8 2 9 2 10 4 11 4 12 2 13 2 14 6 15 4 16 6 17 6 18 4 19 …
73 code-golf  sequence  primes  number-theory  code-golf  decision-problem  code-golf  date  code-golf  typography  code-golf  math  number  multiple-holes  code-golf  quine  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 

16
世界最小のWebブラウザ
バックストーリー: メガマルチコーポレーションで新しいプログラミングの仕事を楽しんでいます。ただし、コンピューターにはCLIしかないため、Webを閲覧することはできません。また、全従業員のハードドライブのスイープも実行するため、大きなCLI Webブラウザーを単純にダウンロードすることはできません。できる限り小さく、毎日一時ファイルに入力できるように、できるだけ小さいシンプルなテキストブラウザーを作成することにしました。 チャレンジ: あなたの仕事は、コマンドラインインターフェイス内でゴルフWebブラウザーを作成することです。そうすべき: argsまたはstdin経由で単一のURLを取得します URLのコンポーネントdirectoryとhostコンポーネントを分割します 単純なHTTPリクエストを送るhostと要求しますdirectory <p>段落</p>タグの内容を印刷します 終了するか、別のページを要求します 詳細: 単純なHTTPリクエストは次のようになります。 GET {{path}} HTTP/1.1 Host: {{host}} Connection: close \n\n 改行の強調。 典型的な応答は次のようになります。 HTTP/1.1 200 OK\n <some headers separated by newlines> \n\n <html> ....rest of page ルール: ポート80でのみ動作する必要があります(SSLは不要です) netcatは使用できません どのプログラミング言語が使用されていても、低レベルのTCP APIのみが許可されます(netcatを除く) GUIを使用することはできません。CLIであることに注意してください 組み込みのものを除き、HTMLパーサーは使用できません(BeautifulSoupは組み込みではありません) ボーナス!!プログラムがループバックし、終了する代わりに別のURLを要求する場合、-40文字(再帰を使用しない限り) サードパーティのプログラムはありません。何もインストールできないことを忘れないでください。 code-golfなので、最短バイト数が勝ちます

23
まあそれは奇妙なことです...待てない、それは偶数です!
前文 整数は常に偶数または奇数です。偶数の整数は2で割り切れ、奇数の整数は割り切れません。 2つの整数を追加すると、被加数が偶数か奇数かに基づいて、結果が偶数か奇数かを推測できます。 偶数+偶数=偶数 偶数+奇数=奇数 奇数+偶数=奇数 奇数+奇数=偶数 同様に、2つの整数を乗算すると、因子が偶数か奇数かに基づいて、結果が偶数か奇数かを推測できます。 偶数*偶数=偶数 偶数*奇数=偶数 奇数*偶数=偶数 奇数*奇数=奇数 したがって、加算と乗算のみが関係する数式のすべての変数の偶数または奇数がわかっている場合、結果が偶数か奇数かを推測できます。 たとえば(68 + 99) * 37、偶数と奇数(68 + 99)が奇数であり、奇数と別の奇数(odd * 37)が奇数を与えるため、自信を持って奇数になると言うことができます。 チャレンジ 唯一の4つの文字を含む文字列を取り込みプログラムや関数を書きますeo+*。この文字列は、加算()と乗算()のみを含むプレフィックス表記で指定された数式を表します。それぞれが任意の偶数を表し、それぞれが任意の奇数を表します。+*eo あなたの仕事は表現、印刷または単一の復帰簡素化することであるeか、o式の結果が偶数か奇数かに基づいています。 入力は常に有効なプレフィックス表記であると想定できます。具体的には、それぞれ+との*後に、常に2つの対応するオペランドがあります。これらのオペランドは、単一のeor o、またはオペランドを持つ別の+or *式です。 たとえば、入力*+eooはとしてmul(add(e, o), o)、または(e + o) * o通常の挿入記法で読み取ることができます。e第一oに対応するオペランドであり+、そして+eo、最後には、o対応するオペランドです*。 明確にするために、間違ったプレフィックス表記を持ついくつかの無効な入力を次に示します。 eo ooe o+e ee* +*oe +e*o 出力の単一の末尾の改行は問題ありませんが、そうでなければ、e偶数またはo奇数のプレーンのみが出力されるはずです。 バイト単位の最短コードが優先されます。 テストケース (空の行は、同様のケースを視覚的に区別するためだけのものです。) e -> e o …

2
真剣に、GolfScript、CJam、またはPyth?
少し前に、次の質問が尋ねられました:GolfScript、CJam、またはPyth? タイトルのみに基づいて、私はそれは非常に素晴らしい挑戦になると思いましたが、残念なことに、それはヒントを求める質問であることが判明しました。これが私が読みたかった挑戦です: ゴルフの言語は実世界では使用されていないと誰が言ったのですか?誰もが知っているように、コードの行ごとのバグの割合は、使用されているプログラミング言語に関係なく同じであるため、これらの言語のデバッグおよび保守コストを削減する明確な機会があります。あなたの会社はついに光を見て、Golfscript、CJam、Pythを使用して製品を開発することにしました。 残念ながら、2、3か月後、ハードドライブにはコードスニペットが散らばっており、どの言語がどの言語で書かれているのかさえわかりません(Perlを使用しているプログラマーもいます)。 CJam、Golfscript、Pythのどれがプログラムの記述言語であるかを検出するツールを作成する必要があります。状況は非常に重要です。任意の言語を使用できますが、短くしてください(データストレージは高価です。使用するバイトが多いほど、コストがかかります)。 全般 最短コード勝利 標準的な抜け穴など オンライン通訳を使用しないでください 関数またはプログラムを書くことができます evalを使用して独自の言語を検出できます 入力 入力は標準入力ストリームから、または文字列として取得されます 入力には、ASCII印刷可能文字と改行のみが含まれます 入力のサイズは最大256バイトです 出力 出力は出力ストリームに出力されるか、文字列/シンボルのシーケンスとして返されます 入力は間違いなく有効である場合Xの印刷、プログラム又は戻りXを、X ∈{CJam、Pyth、Golfscript} 注釈:「疑いなく」とは、言語の検出に一貫して失敗するダムアナライザーで答えることができるという意味ではありません。Pyth、私は期待していない単純なプログラムが認識される(ただし、ハードコード)。同じことがCJam(チートシート、例)とGolfscript(例)にも当てはまります。前のリンクは、各言語の仕様を指しています。ファジー/ベイジアンアプローチを使用する場合、「疑いのない」とは、高いレベルの信頼性を意味します(たとえば、分類で99%を獲得します)。 実際のテストスイートについては、以下を参照してください。 入力が複数の言語で有効な場合、検出された各言語を印刷/返却する必要があります。印刷するときは、複数の出力の間に区切り文字が必要です(スペース、改行、コンマなど)。 言語が試行される順序は重要ではありません ケースは気にしません(CJam、cjam、CJAM、SPAM)[1] 上記の言語がいずれも検出されない場合は、「Probably Perl」を印刷します。mbomb007からのこのコメントのおかげで、上記のケースではSeriously、4バイトのペナルティ(両方の文字列の差)に対して" "を出力することもできます。 [1]明確にするために、スパムは無効です 例 入力 "Crime predicted: -- Calling: 1--555- "30*{_5<{iAa*:mr}&}/ 出力(複数の戻り値の例) ["Golfscript", "Cjam"] 入力 3 出力(標準出力の例) golfscript cjam pyth 入力 if {} aazd 出力 …

26
OOo CODEを翻訳
oOo CODEで記述されたプログラムの入力が与えられると、それが表すBFコードを出力します。 oOo CODEの仕組みの簡単な説明を次に示します。 最初に、アルファベット以外の文字がすべて削除されます(範囲外のすべて A-Za-z)。 たとえば、プログラムを使用しますPROgRam reVERsES giVeN iNPut sEqUENcE(esolangs wikiページに記載されている、期待どおりの動作をする例)。この最初のステップの後、次のようになりました PROgRamreVERsESgiVeNiNPutsEqUENcE。 次に、残りのすべての文字を3つのグループに分割します PRO,gRa,mre,VER,sES,giV,eNi,NPu,tsE,qUE,NcE。1文字または2文字の末尾グループがある場合、それを破棄します。 次の表に基づいて、3文字の各グループをBFコマンドに変換します。 ooo > ooO < oOo [ oOO ] Ooo - OoO + OOo . OOO , つまり、グループの最初の文字が小文字、2番目が大文字、3番目が小文字の場合、コマンドに変換され [ます。 この例では、これが最終的にBFプログラムになり、,[>,]<[.<]+実際に入力が逆になります。 これはcode-golfであるため、バイト単位の最短コードが優先されます。 テストケース: <empty string> -> <empty string> A -> <empty string> Ab -> <empty string> …

13
ゴルフマイシェークスピア引用文献
シェークスピアのエッセイを書いている間、引用の参照をより管理しやすい長さに短縮する必要があることに気付きました。私は以前これを書いていました: (Act 1, Scene 2, Lines 345-346) しかし、私は今、次のようにそれらを書くように言われました: (I.ii.345-6) 明らかに、シェークスピアの引用文献を少し下にゴルフするために、ゴルフのコードが必要です。 タスク テンプレート1または2の後に文字列を入力すると、それぞれテンプレート3または4の後に文字列を印刷または返すプログラムまたは関数を作成します。あなただけの行為1から5とシーン1から9をサポートする必要があります。 テンプレート テンプレート1 (Act x, Scene y, Lines a-b) あなたは、と仮定してよいx、5を超えることはありませんy9を超えない、決してaそしてb常にあなたの言語の最大の正の標準的な整数値を超えない正の整数であり、そしてa常に独占未満ですb。 テンプレート2 (Act x, Scene y, Line a) についての情報を除き、テンプレート1と同じ条件b。 テンプレート3 (x.y.a-b) ここで、x資本ローマ数字であり、y小文字ローマ数字であり、aそしてb数であり、そしてb以下から同じ意味の最初の異なる桁以上だけ桁に短縮されますa。 テンプレート4 (x.y.a) についての情報を除き、テンプレート3と同じ条件b。 テストケース ましょうf(s)タスクで定義された関数です。""文字列値を示します。 >>> f("(Act 1, Scene 2, Lines 345-346)") "(I.ii.345-6)" >>> f("(Act 3, Scene 4, …

30
StringgnirtSStringgnirtSStringgnirtS
これは比較的簡単なチャレンジです。 長さNの文字列が与えられると、文字列を前方に、次に後方に、次に前方に、次に後方に...などN回出力します。たとえば、入力が Hello! 出力する必要があります: Hello!!olleHHello!!olleHHello!!olleH オプションで、末尾の改行を1つ出力することもできます。 あなたの提出物は、完全なプログラムまたは機能のいずれかである可能性があり、任意の合理的な形式で入力および出力を行うことができます。たとえば、STDIN / STDOUT、関数の引数と戻り値、ファイルなどからIOを取得できます。入力文字列は空ではなく、印刷可能なASCIIのみを含むと安全に想定できます。新しい文字列を1行で出力する必要があります。したがって、たとえば、最後の例の出力が Hello! !olleH Hello! !olleH Hello! !olleH これは有効な解決策ではありません! 以下に、さらにいくつかのテストケースを示します。 Input: a Output: a Input: abcd Output: abcddcbaabcddcba Input: OK! Output: OK!!KOOK! Input: 4815162342 Output: 4815162342243261518448151623422432615184481516234224326151844815162342243261518448151623422432615184 Input: PPCG Output: PPCGGCPPPPCGGCPP Input: 42 Output: 4224 リーダーボード これはコードゴルフの挑戦なので、標準的な抜け穴は禁止され、バイト単位の最短回答が勝ちます!ただし、これは特定の言語で最短の回答を得るための競争でもあります。Javaの答えがperlや他のゴルフ言語の答えに勝る可能性は低いですが、Javaの最短の答えを持つことは依然として非常に印象的です。したがって、このリーダーボードを使用して両方を表示できます すべての言語の中で最も短い回答、および 個々の言語での最短回答。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 # Language Name, N …
42 code-golf  string  code-golf  math  geometry  data-structures  repeated-transformation  code-golf  number  random  code-golf  math  rational-numbers  code-golf  ascii-art  animation  code-golf  ascii-art  number  code-golf  math  number  code-golf  data-structures  code-golf  string  parsing  code-golf  array-manipulation  random  permutations  code-golf  string  code-golf  parsing  code-golf  string  quine  code-golf  string  parsing  comment  code-golf  string  counting  natural-language  code-golf  string  decision-problem  code-golf  math  code-challenge  metagolf  test-battery  code-golf  string  code-golf  math  number  arithmetic  source-layout  code-golf  number  primes  decision-problem  code-golf  math  arithmetic  code-golf  date  code-golf  string  cryptography  code-golf  code-golf  chess  board-game  code-golf  geometry  grid  puzzle-solver  set-partitions  code-golf  number  natural-language  code-golf  ascii-art  code-golf  math  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  string  natural-language  code-golf  game  board-game  tic-tac-toe  code-golf  ascii-art  hexagonal-grid  code-golf  string  comment  code-golf  internet  code-golf  sorting  code-golf  kolmogorov-complexity  unicode  code-golf  tips  code-golf  string  natural-language  code-golf  string  kolmogorov-complexity  source-layout  hello-world  code-golf  string  kolmogorov-complexity  counting  natural-language  code-golf  random  quine  code-golf  string  math  bitwise  code-golf  permutations  code-golf  string  code-golf  arithmetic 

12
C変数宣言を読み取る
バックグラウンド Cの変数宣言ステートメントは、変数の名前、そのベース型、および型修飾子の3つの部分で構成されています。 タイプ修飾子には次の3種類があります。 ポインター*(プレフィックス) 配列[N](後置) 関数()(後置) 括弧内に関数引数のリストを指定できますが、この課題のために、それを無視して使用します()(技術的には「関数は任意の種類の引数を取ることができます」)。 また、表記を読み取る方法は次のとおりです。 int i; // i is an int float *f; // f is a pointer to a float my_struct_t s[10]; // s is an array of 10 my_struct_t int func(); // func is a function returning an int キャッチは、私たちのようなより複雑なタイプ、形成するために、これらのすべてを混在させることができるということである配列の配列や関数ポインタの配列やポインタの配列へのポインタを: int arr[3][4]; // arr …
41 code-golf  parsing  c  syntax 

30
この数値は-2の整数乗ですか?
数値が2のべき乗かどうかを判断する賢い方法があります。これはもはや興味深い問題ではないので、与えられた整数が-2の整数のべき乗かどうかを判断しましょう。例えば: -2 => yes: (-2)¹ -1 => no 0 => no 1 => yes: (-2)⁰ 2 => no 3 => no 4 => yes: (-2)² ルール プログラムまたは関数を作成し、入力を受け取って出力を提供する標準的な方法を使用できます。 入力は単一の整数であり、整数が-2の整数乗である場合は出力が真実の値であり、それ以外の場合は偽の値である必要があります。他の出力(警告メッセージなど)は許可されません。 通常の整数オーバーフロールールが適用されます。ソリューションは、すべての整数がデフォルトで制限されていない仮想バージョン(または実際のバージョン)の任意の大きな整数で動作できる必要がありますが、実装によりプログラムが実際に失敗する場合それほど大きな整数をサポートしていなくても、ソリューションは無効になりません。 任意のプログラミング言語を使用できますが、これらの抜け穴はデフォルトでは禁止されています。 勝利条件 これは、コードとゴルフのコンテストです。(選択したエンコーディングで)バイト数が最も少ない答えが勝者です。

22
Natural Pi#0-ロック
ゴール 入力を受け取るプログラム/関数を作成し、整数のランダムなペアが比較的素数であるNかどうかを確認しN、を返しますsqrt(6 * N / #coprime)。 TL; DR これらの課題は、Piを概算するために自然と脳(およびおそらく再利用可能なリソース)のみを必要とするアルゴリズムのシミュレーションです。ゾンビの黙示録中に本当にPiが必要な場合、これらの方法は弾薬を無駄にしません!さらに8つの課題があります。推奨事項を作成するには、サンドボックスの投稿をチェックしてください。 シミュレーション 何をシミュレートしていますか?さて、2つのランダムな整数が比較的素数(すなわち、コプライムまたはgcd == 1)である確率は6/Pi/Piです。それらを数える; gcdが1 かどうかを確認します。繰り返す。これを数回繰り返した後、sqrt(6.0 * total / num_coprimes)に向かう傾向がありPiます。黙示録的な世界で平方根を計算するのが不安になっても心配しないでください!そのためのニュートン法があります。 これをどのようにシミュレートしますか? 入力してください N 次のN時間を実行します。 ランダムな正の整数を均一に生成しi、j と 1 <= i , j <= 10^6 もしgcd(i , j) == 1:result = 1 その他: result = 0 N結果の合計を取り、S 戻る sqrt(6 * N / S) …
39 code-golf  math  random  pi  approximation  popularity-contest  code-golf  sequence  number-theory  binary  coding-theory  code-golf  math  3d  code-golf  code-golf  math  number  code-golf  kolmogorov-complexity  code-golf  ascii-art  graphical-output  binary-tree  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation  hexadecimal  code-golf  math  number  set-theory  code-golf  math  arithmetic  number-theory  integer  code-golf  string  kolmogorov-complexity  code-golf  math  sequence  arithmetic  decision-problem  code-golf  code-golf  ascii-art  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
ドイツ語の発音を推測する
前書き 英語とは異なり、ドイツ語は音素表記システムが非常に優れていると考えられています。これは、スペルと発音の対応が近いことを意味します。なじみのない単語を考えても、スペルシステムのために、その単語の発音方法を知っているでしょう。これは、コンピューターでも正しく実行できるはずだということですか? チャレンジ ドイツ語の単語を表す文字列を入力として受け取り、その発音を国際音声文字(IPA)で出力または返すプログラムまたは関数を作成します。 もちろん、ドイツ語や完全なIPAを学ばせるつもりはありません。この1つのWikipediaのセクションでは、あなたが必要とするルール、と私はungolfed C#のコード化されてきたIPAにほぼすべてのドイツ語を提供リファレンス実装を。 このリンクには、400の一般的なドイツ語の単語とそのIPAの発音のリストも提供されています(検証に必要です)。そのリストから例を挙げると、入力がのsolltest場合、正しい出力はˈzɔltəstです。 参照実装は、Wikipediaセクションで言及されていない2つの有用なルールを追加します:単語のストレスが最初の音節(ドイツ語である可能性が非常に高い)にあると想定し、文字「e」がシュワ音/ə/を表すタイミングを決定するために、より良いヒューリスティックを使用します。プレフィックスの特別な処理も実装しますが、思ったほど結果が改善されませんでした。 詳細 有効なエントリと見なされるには、プログラムが次の要件を満たしている必要があります。 IPA出力は、参照語リストの 400語のうち少なくとも300語と完全に一致する必要があります(参照実装は333正しいです) あなたのプログラムは、もっともらしいドイツ語を推測する必要があります。したがって、技術的な要件があります。これは、正規表現に一致し、[a-zA-ZäÄöÖüÜ][a-zäöüß]*少なくとも1つの母音(aeiouyäöü)を持つ入力については、空白以外の出力を生成し、エラーを出力しないことを意味します。 プログラムは決定論的である必要があります(同じ入力に対して常に同じ出力を生成します) それ以外の場合、標準的な抜け穴は禁止されています(特に、オフサイトリソースの取得に関するもの) 許可されているその他のこと: 必要に応じて、出力に先頭と末尾の空白を含める 出力に既存の文字エンコーディングを使用します(Unicode以外がうまく機能することは想像できませんが、可能であればおめでとうございます) 入力は、ユニコード正規化形式NFD、NFCなどのような正規化された形式であると仮定します。たとえば、äは単一の文字またはベース文字+結合文字として書かれていますか? 標準の入出力方法を使用する スコアリングとIPAキャラクター スコアリングはバイト単位です。ドイツ語の文字とIPAの文字はUTF-8で2バイトであることに注意してください。また、IPA文字U + 0327 COMBINING INVERTED BREVE BELOW(̯)はUnicode結合文字であり、2バイトのUTF-8文字そのものです。つまり、ɐ̯のようなものはUTF-8では4バイトとしてカウントされます。好奇心の強い人のために、この記号は母音が音節核を形成しないことを意味します(前のものは代わりに形成します)。 また、一部のフォントでは他のASCII文字のように見えるこれらのIPA文字に注意してください。 参照語リストの作成方法 このセクションは、チャレンジには不要な追加情報です。 単語リストはこのウィクショナリーの単語頻度リストから取得され、大文字と小文字の違いと、英語のウィクショナリーにドイツ語のエントリがない2つの単語(oh&hey)のために繰り返しを削除しました。IPAは、英語とドイツ語の両方のウィクショナリーを見ていた。複数の発音が提供された場合、より正式で標準的なものを選びました。これが明確でない場合は、一般的なルールに最も適合するものを選択しました。 また、文字「r」の発音方法を標準化する必要がありました。この文字がどのように発音されるかは地域に大きく依存しており、ウィクショナリーは選択したものとまったく一貫していませんでした。私はそれが次の傾向があると感じました:「r」は長い母音が続き、母音が続かないとき発音される/ɐ̯/、そうでなければ、それはʁです。したがって、非常に一貫性のある/(f)ɛɐ̯/であるver-およびer-プレフィックスを除き、すべてのルールをそのルールに従うように変更しました。同様に、「eu」を/ɔʏ̯/として標準化しました。

15
転倒しますか?
概要 3行の文字列が与えられたら、構造が左に落ちるか、バランスを取るか、または右に落ちるかを判断します。 入力構造 構造は、上部に物が置かれた金属棒であり、すべてが垂直棒の上にバランスが取れていると想像できます。 1 7 4 a =============== | 最初の行はアイテムです。各アイテムの重量は、文字のASCII値から32を引いた値として計算されます(32未満の文字は考慮されず、スペースの重量は0です)。ロッドに対するアイテムの力は、その重量にピボットポイントまでの距離を掛けたものであることに注意してください。 2行目はロッドです。ロッドの各長さは、それ自体で1ユニットの重量があります。この行は排他的に等号(=)です。 3行目はピボットポイントです。これはどこにでも配置でき、複数のスペースとそれに続く単一のパイプ(|)文字で表されます。 例 入力: ===== | 出力:バランス 入力: ===== | 出力:左に落ちる 入力: % ===== | 出力:バランス(%ロッドの左側の重量を打ち消すのに十分な重量があるため) 入力: ああ ======= | 出力:右に倒れます(a右側がピボットポイントからさらに離れているため) 入力: 1 7 4 A =============== | 出力:左に落ちる 入力: 1 7 4 a =============== | 出力:正しく落ちる(小文字が重い!) 入力: $ …

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