この課題では、あなたの仕事は、候補者が言った短い段落またはいくつかの文を取り、それを誰が言ったかを出力する300文字未満のプログラムを作成することです。
入力:関数へのパラメーター、プログラムへの入力などとして使用できます。短い段落で、適切に区切られています。
出力:あなたがそうだと思う候補。これは
Ben Carson (1)
Ted Cruz (2)
John Kasich (3)
Marco Rubio (4)
Donald Trump (5)
Hillary Clinton (6)
Bernie Sanders (7)
3月1日の時点で中退した人の名前は省略しました。名前自体を出力することも、より便利なことに、名前に対応する番号を出力することもできます。
スコアリング: あなたのスコアは、あなたが正しいテストケースの割合です。最高スコアが勝ちます。コードゴルフのように、タイ(またはパーフェクトスコア)はコードの長さによって分割されます。
テストケースは以下から取得できます。
http://www.presidency.ucsb.edu/debates.php
これまでに起こった(3月1日以前の)民主党と共和党の両方の議論をクリックしてください。「段落」の長さが20文字未満でない限り、すべての段落はテストケースです。
特定のページからテストケースを引き出すコードは次のとおりです。
var t = $(".tools").parentNode.querySelectorAll("p");
var categ = {}, cur = 0;
for (var i = 0; i < t.length; ++i) {
var p = t[i], str = p.innerText;
if (p.querySelector("b")) {
cur = p.querySelector("b").innerText.replace(':', '');
str = str.replace(/^.*?:\s/, '');
}
str = str.replace(/\[applause\]/g, '')
if (str.length < 20) continue;
if (categ[cur] == null) categ[cur] = [];
categ[cur].push(str);
}
その後、categ.SANDERS
サンダース上院議員が言ったすべての段落のリストを取得することができます。
上記の候補者が言っていないものはすべて破棄できます(categ.BUSH
またはcateg.CHRISTIE
)。
すべてのテストケースを含むファイルを次に示します。https : //drive.google.com/file/d/0BxMn8--P71I-bDZBS2VZMDdmQ28/view?usp=sharing
ファイルは候補ごとに整理されています
CANDIDATE CANDIDATE_LAST_NAME
(empty line)
Series of statements. Each paragraph is separated by (NEW PARAGRAPH)-
(empty line)
CANDIDATE NEXT_CANDIDATE_LAST_NAME
(empty line)
etc.
部分的な提出の例は次のとおりです。
if (/ win | wall | great | beautiful/.test(p)) return 5;
if (/ percent | top one | rigged /.test(p)) return 7;
// etc. for all candidates
または
var words = p.split(' ');
// majority of words have less than 5 characters
if (words.length - words.filter(a => a.length < 5).length < 4) evidence[5]++;
// at the end
return /* index with the most evidence */
JavaScriptソリューションをテストできる場所は次のとおりです:https : //jsfiddle.net/prankol57/abfuhxrh/
コードは、パラメーターp
を使用して分類するフレーズを表します。スコアが約20%のサンプルコード(推測では約11%になります):
if (/ rigged | top | percent | Wall Street /.test(p)) return 'Sanders';
return 'Trump';
まさに私が求めていること:候補者が言ったフレーズを入力として受け取り、候補者がそれを言った出力として返すプログラム/関数を300文字未満で記述します。あなたのスコアは、あなたが正解したテストケースの割合です。最高スコアが勝ちます。
はい、私は多くの行が[laughter]
それら[cheering]
にあることを知っています。これらは削除されません。最悪の場合、これらは無視できる追加情報です。せいぜい、それらはあなたが使うことができる追加情報です(例えば、私はこれを作りましたが、多分人々の笑い声はマルコ・ルビオが話している証拠です)。テストケースは、テキストファイルに表示されるとおりです。