Bu görevde göreviniz, bir adayın söylediği ve kimin söylediğini çıkardığı kısa bir paragraf veya birkaç cümle alan 300'den az karakterden oluşan bir program yazmaktır .
Girdi : Bir işleve parametre olarak alınabilir, bir programa girilebilir vb. Kısa bir paragraf olacak ve düzgün şekilde noktalanacaktır.
Çıktı : Düşündüğünüz aday. Bu biri olabilir
Ben Carson (1)
Ted Cruz (2)
John Kasich (3)
Marco Rubio (4)
Donald Trump (5)
Hillary Clinton (6)
Bernie Sanders (7)
1 Mart'tan itibaren okuldan ayrılanların isimlerini bıraktım. İsmin kendisini veya daha uygun olarak, isme karşılık gelen sayıyı çıkarabilirsiniz.
Puanlama: Puanınız doğru yaptığınız test vakalarının yüzdesidir. En yüksek puan kazanır. Kravatlar (veya mükemmel skorlar) bir kod golfünde olduğu gibi kod uzunluğuna göre kırılır.
Test senaryoları aşağıdakilerden çekilebilir:
http://www.presidency.ucsb.edu/debates.php
Demokrat ve Cumhuriyetçi olan her tartışmaya (1 Mart'tan önce) tıklayın. "Paragraf" 20 karakterden kısa değilse, her paragraf bir test durumudur.
Test senaryolarını belirli bir sayfadan çıkaran kod:
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);
}
Daha sonra categ.SANDERS
Senatör Sanders'ın söylediği tüm paragrafların bir listesini almak için yapabilirsiniz .
Yukarıda listelenen (örneğin categ.BUSH
veya categ.CHRISTIE
) adaylar tarafından söylenmeyen herhangi bir şeyi atabilirsiniz .
Tüm test senaryolarının bulunduğu dosya: https://drive.google.com/file/d/0BxMn8--P71I-bDZBS2VZMDdmQ28/view?usp=sharing
Dosya aday tarafından düzenlenir
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.
Kısmi bir örnek gönderilmesi:
if (/ win | wall | great | beautiful/.test(p)) return 5;
if (/ percent | top one | rigged /.test(p)) return 7;
// etc. for all candidates
veya
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 çözümlerini test edebileceğiniz bir yer: https://jsfiddle.net/prankol57/abfuhxrh/
Kod, p
sınıflandırmak için ifadeyi temsil etmek üzere parametreyi kullanır . % 20 civarında puan alan örnek kod (tahmin etme% 11 civarında olur):
if (/ rigged | top | percent | Wall Street /.test(p)) return 'Sanders';
return 'Trump';
Tam olarak sorduğum şey: Bir adayın söylediği bir ifadeyi girdi olarak alan ve adayın söylediği çıktı olarak geri dönen 300'den az karakter içeren bir program / işlev yazın. Puanınız doğru yaptığınız test vakalarının yüzdesidir. En yüksek puan kazanır.
Evet, biliyorum ki içinde [laughter]
veya [cheering]
içinde çok fazla çizgi var . Bunlar kaldırılmayacak. En kötüsü, görmezden gelebileceğiniz ekstra bilgilerdir; en iyi ihtimalle, kullanabileceğiniz ekstra bilgilerdir (örneğin bunu uydurdum, ama belki de kahkahalar Marco Rubio'nun konuştuğunun kanıtıdır). Test senaryoları metin dosyasında göründükleri gibidir.