이 도전에서, 당신의 임무는 짧은 문단이나 후보자가 말한 몇 문장을 취하는 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 */
다음은 자바 스크립트 솔루션을 테스트 할 수있는 곳입니다. https://jsfiddle.net/prankol57/abfuhxrh/
코드는 매개 변수 p
를 사용하여 분류 할 문구를 나타냅니다. 점수가 약 20 % 인 예제 코드 (추측은 11 % 정도 임) :
if (/ rigged | top | percent | Wall Street /.test(p)) return 'Sanders';
return 'Trump';
정확히 내가 요구하는 것 : 후보자가 말한 문구를 입력으로 받아 후보가 말한 출력으로 반환하는 300 문자 미만으로 프로그램 / 함수를 작성하십시오. 당신의 점수는 당신이 맞은 테스트 사례의 비율입니다. 가장 높은 점수가 이깁니다.
예, 많은 줄이 [laughter]
있거나 [cheering]
그 줄에 있다는 것을 알고 있습니다. 이들은 제거되지 않습니다. 최악의 경우 무시할 수있는 추가 정보입니다. 기껏해야, 그들은 당신이 사용할 수있는 추가 정보입니다 (예를 들어, 이걸 만들었지 만 아마도 사람들은 웃음이 마르코 루비오가 말하고 있다는 증거 일 것입니다). 테스트 사례는 텍스트 파일에 나타나는대로입니다.