इस चुनौती में, आपका कार्य एक कार्यक्रम लिखना है 300 से कम वर्णों वाला जो एक छोटे पैराग्राफ या कुछ वाक्य हैं जो एक उम्मीदवार ने कहा है और आउटपुट जिसने कहा है।
इनपुट : किसी फंक्शन के पैरामीटर के रूप में लिया जा सकता है, किसी प्रोग्राम के लिए इनपुट आदि। यह एक छोटा पैराग्राफ होगा, जिसे ठीक से पंक्चर किया जाएगा।
आउटपुट : उम्मीदवार जो आपको लगता है कि यह है। यह एक हो सकता है
Ben Carson (1)
Ted Cruz (2)
John Kasich (3)
Marco Rubio (4)
Donald Trump (5)
Hillary Clinton (6)
Bernie Sanders (7)
मैंने उन लोगों के नाम छोड़ दिए हैं जो 1 मार्च तक बाहर हो गए हैं। आप स्वयं नाम का उत्पादन कर सकते हैं, या अधिक सुविधाजनक रूप से, संख्या जो नाम से मेल खाती है।
स्कोरिंग: आपका स्कोर आपके द्वारा प्राप्त किए गए परीक्षण मामलों का प्रतिशत है। उच्चतम स्कोर जीतता है। Ties (या परफेक्ट स्कोर) कोड लंबाई के अनुसार एक कोड गोल्फ में टूट जाता है।
परीक्षण मामलों से लिया जा सकता है:
http://www.presidency.ucsb.edu/debates.php
प्रत्येक बहस पर क्लिक करें, डेमोक्रेट और रिपब्लिकन दोनों जो अब तक (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 */
यहाँ एक जगह है जहाँ आप जावास्क्रिप्ट समाधान का परीक्षण कर सकते हैं: https://jsfiddle.net/prankol57/abfuhxxh/
कोड p
वर्गीकृत करने के लिए वाक्यांश का प्रतिनिधित्व करने के लिए पैरामीटर का उपयोग करता है । उदाहरण कोड जो लगभग 20% स्कोर करता है (अनुमान है कि लगभग 11% मिलेगा):
if (/ rigged | top | percent | Wall Street /.test(p)) return 'Sanders';
return 'Trump';
वास्तव में मैं क्या पूछ रहा हूँ: 300 से कम वर्णों में एक प्रोग्राम / फ़ंक्शन लिखें जो एक वाक्यांश के रूप में इनपुट करता है जो एक उम्मीदवार ने कहा है और आउटपुट के रूप में देता है जो उम्मीदवार ने कहा था। आपका स्कोर आपके द्वारा प्राप्त किए गए परीक्षण मामलों का प्रतिशत है। उच्चतम स्कोर जीतता है।
हां, मुझे पता है कि बहुत सारी लाइनें हैं [laughter]
या [cheering]
उनमें हैं। इन्हें हटाया नहीं जाएगा। सबसे कम, वे अतिरिक्त जानकारी हैं जिन्हें आप अनदेखा कर सकते हैं; सर्वोत्तम रूप से, वे अतिरिक्त जानकारी हैं जिनका आप उपयोग कर सकते हैं (जैसे मैंने इसे बनाया है, लेकिन शायद लोग हँसी इस बात का सबूत हैं कि मार्को रुबियो बोल रहा है)। परीक्षण के मामले वैसे हैं जैसे वे पाठ फ़ाइल में दिखाई देते हैं।