क्या यह वास्तव में कनाडा दिवस था?


22

1 जुलाई कनाडा दिवस है (याय कनाडा)! या यह है? ऐसा लगता है कि इस दिन के लिए विकिपीडिया पृष्ठ में कनाडा से संबंधित सामग्री बहुत अधिक है, लेकिन क्या एक और दिन है जो अधिक कनाडाई है?

आपका कार्य एक प्रोग्राम या फ़ंक्शन लिखना है जो इनपुट के रूप में एक तारीख (महीने और दिन) लेता है और इनपुट तिथि के लिए विकिपीडिया पृष्ठ पर "कनाडा" के उल्लेखों की संख्या को आउटपुट करता है। कुछ िनयम:

  • तिथियां आपकी पसंद के किसी भी उचित प्रारूप में इनपुट हो सकती हैं
  • आपका सबमिशन url से डेटा खींचना होगा en.wikipedia.org/wiki/Month_Day
  • केवल "Canada"शामिल किए गए सबस्ट्रिंग की गणना की जानी चाहिए, और केवल शीर्षक मामले में। "Canadian"हालांकि, गिनती नहीं "Canada's"है। जब तक सटीक, केस-सेन्सटिव टेक्स्ट "Canada"एक स्ट्रिंग के भीतर मौजूद है, यह एक मैच है
  • पृष्ठ की सामग्री को संबंधित .htmlफ़ाइल के भीतर कुछ भी माना जाता है (यानी यदि आप पृष्ठ के रूप में डाउनलोड करते हैं .htmlऔर नोटपैड में इसे खोलते हैं तो क्या दिखाता है )
  • परिणाम STDOUT, लौटाया या किसी अन्य उचित तरीके से प्रदर्शित किया जा सकता है

परीक्षण के मामलों:

July 1 => 34
May 14 => 1
Oct 31 => 2
July 4 => 2

यह कोड गोल्फ है, इसलिए कम से कम सबमिशन जीतता है

(अप्रतिबंधित बोनस के रूप में, मुझे यह देखने में दिलचस्पी है कि उच्चतम गणना के साथ क्या दिन है)


क्या विकिपीडिया एपीआई का उपयोग किया जा सकता है?
लीजनमोनमल 978

मुझे इसके बारे में ज्यादा जानकारी नहीं है, इसलिए मुझे हां कहने में संकोच है कि इसमें कोई तुच्छ कार्य है। अपने सर्वोत्तम निर्णय का उपयोग करें और यदि यह बहुत आसान है तो कृपया
संयम बरतें

9
के लिए संदर्भ तो Canadaville , Canadair , Canadarm , Canadaga , Canadarago , Canaday , Canadaspis , एट अल। गिनती?
msh210

@ msh210, हां, वे करते हैं
wnnmaw

1
1 जुलाई उच्चतम गिनती के साथ दिन है! इसके लिए एक त्वरित कार्यक्रम लिखा, हालांकि यह गोल्फ नहीं है।
एंड्रयू

जवाबों:


4

पायथ, 31 बाइट्स

/jk'+"http://enwp.org/"z"Canada

ऑनलाइन कार्यान्वयन पर काम नहीं करता है, सर्वर इंटरनेट एक्सेस को अक्षम करता है। मैं http://wki.pe/July_1 का उपयोग करना चाहता था, लेकिन दुख की बात है कि यह एक क्लाइंट-साइड रीडायरेक्ट है, ताकि यह गलत पेज ला सके। इनपुट प्रारूप है July_1

कोड मूल रूप से सिर्फ:

"".join(open("http://enwp.org/"+input())).count("Canada")

24

बैश, 43 42 40 बाइट्स

curl -L enwp.org/$@|grep -o Canada|wc -l

उपयोग curl, grepऔर wcनिर्दिष्ट वेबपेज में "कनाडा" की घटनाओं की गणना करने के लिए। अन्य उत्तरों की तरह, प्रारूप में इनपुट दिया गया है July_1। यह मेरी पहली बार कोड गोल्फ एसई पर पोस्टिंग है और मैं सभी नियमों से बिल्कुल परिचित नहीं हूं। किसी भी प्रतिक्रिया सबसे स्वागत होगा।

पारंपरिक रूप से नजरअंदाज किया गया है कि उत्पादन के लिए एहसास नहीं था STDERR । 3 बाइट्स के लिए धन्यवाद, डेनिस !


लेकिन curl -sLअभी भी कम से कम नहीं होगा wget -qO-?
निक मैट्टो

1
STDERR के आउटपुट को डिफ़ॉल्ट रूप से अनदेखा किया जाता है , इसलिए आप curlबिना -s(या wgetबिना -q) का उपयोग कर सकते हैं ।
डेनिस

@ डेनिस धन्यवाद! मुझे नहीं पता था कि STDERRइसे नजरअंदाज कर दिया गया है। बहुत सराहना की।
श्रीराम

@ कुंडोर यह एक अच्छी बात है। किसी कारण से, दो झंडों का संयोजन मेरे लिए कभी नहीं हुआ। फिर भी, चूंकि आउटपुट को STDERRडिफ़ॉल्ट रूप से अनदेखा किया जाता है, इसलिए इसे -sपूरी तरह से छोड़ना छोटा होगा ।
श्रीराम

15

पर्ल 5, 39 बाइट्स

38 बाइट्स, प्लस 1 के -peबदले-e

$_=()=`curl -L enwp.org/$_`=~/Canada/g

जैसे इनपुट लेता है July_1

मुझे सात बाइट्स बचाने के लिए बसुकक्सुआन के लिए धन्यवाद ।


1
मैं कर्ल से परिचित नहीं हूं, लेकिन क्या "http: //" के छह बाइट्स को बचाना संभव है?
बसुकक्सुआन

1
@busukxuan, हाँ, बहुत धन्यवाद।
msh210

7

पायथन 3.5, 117 111 98 90 बाइट्स

( -8 बाइट्स ( एलेक्सा बच्चन98 -> 90 को धन्यवाद )

from urllib.request import*
lambda i:urlopen('http://enwp.org/'+i).read().count(b"Canada")

बस HTML डेटा प्राप्त करने के लिए पायथन की अंतर्निहित "urllib" लाइब्रेरी का उपयोग करता है और फिर उस डेटा में "कनाडा" शब्द की घटनाओं को गिनता है। कोशिश करेंगे और समय के साथ गोल्फ को और अधिक और जहां मैं कर सकता हूं। lambdaकिसी भी फ़ंक्शन को नाम देकर उसे कॉल करें और फिर उस नाम को सामान्य फ़ंक्शन की तरह लपेट कर print()। उदाहरण के लिए, यदि फ़ंक्शन का नाम दिया गया था H, तो आप इसे पसंद करेंगे print(H(Month_Day))


4
मुझे लगता है कि आप की जगह आठ वर्ण बचा सकता है .decode().count("Canada")के साथ .count(b"Canada")
एलेक्सवचन

@alexwlchan हाँ, आप सही हैं। धन्यवाद! :)
आर। कप।

निश्चित रूप से यह पायथन 2 में छोटा होगा, क्योंकि urllib.urlopenफ़ंक्शन एक सबपैकेज ( from urllib import*बनाम from urllib.request import*) में नहीं है, और b"Canada"इसे बदला जा सकता है "Canada"क्योंकि पायथन 2 के तार डिफ़ॉल्ट रूप से बाइट्स हैं। मैं पायथन 2 में 81 बाइट्स गिनता हूं, और यह मेरे परीक्षण के अनुसार काम करता है।
Mego

5

गणितज्ञ, 60 बाइट्स

Import["http://enwp.org/"<>#,"Source"]~StringCount~"Canada"&

अनाम फ़ंक्शन। इसी तरह पर्ल 5 समाधान, इनपुट की तरह लेता है July_1


बस लूप बंद करने के लिए, एपीआई का यह उपयोग पूरी तरह से ठीक है
wnnmaw

5

पॉवरशेल, 52 बाइट्स

((iwr enwp.org/$($args[0]))-csplit"Canada").length-1
  • इनपुट के रूप में July_1
  • iwrके लिए छोटा है Invoke-WebRequest
  • $($args[0])पहली कमांड लाइन तर्क है। स्क्रिप्ट के रूप में शुरू करो OhCanada.ps1 July_1
  • -csplit मामला संवेदनशील विभाजन है।

5

सी #, 85 बाइट्स

return Regex.Matches(new WebClient().DownloadString("http://enwp.org/"+d),"Canada").Count;

dजैसे इनपुट लेता है July_1

और July_1 है सही मायने में कनाडा दिवस सबसे संदर्भ होने,। साथ February_1और April_2318 के साथ 2 स्थान साझा कर "Canada"प्रत्येक है।

"Canada"दिन का पता लगाएं (समानांतर में), 207 बाइट्स:

return Enumerable.Range(0,366).Select(i=>new DateTime(8,1,1).AddDays(i).ToString("MMMM_d")).AsParallel().OrderBy(d=>Regex.Matches(new WebClient().DownloadString("http://enwp.org/"+d),"Canada").Count).Last();

(वर्ष 8 सबसे कम प्रतिनिधित्व वाला लीप वर्ष है)। संभावित रूप से अक्षम, इसमें OrderByसंभवतया> 366 वेब कॉल उत्पन्न होती हैं, लेकिन बस छोटी होती जा रही हैं और अधिक समय में पूरी नहीं होती हैं।


4

आर, 99 96 बाइट्स

x = फ़ंक्शन (d) {p = readLines (पेस्ट 0 (" http://enwp.org/ ", d)); राशि (nchar (p) -nchar (gsub ("कनाडा", "", p))) / 6}

d=scan(,"");p=readLines(paste0("http://enwp.org/",d));sum(nchar(p)-nchar(gsub("Canada","",p)))/6

यह "जुलाई_1" के रूप में इनपुट d लेता है और Canadas की गिनती लौटाता है। यह पृष्ठ पर वर्णों की संख्या की गणना करके शब्दों को गिनता है, फिर पृष्ठ से कनाडा शब्द हटाता है और पात्रों को फिर से गिनता है। कनाडा जितनी बार दिखाता है, कनाडा की संख्या 6 से विभाजित इन गणनाओं में अंतर है।

संपादित करें: मैं स्कैन के साथ अपने कार्य को बदलने के बारे में नीचे दिए गए टिप की सराहना करता हूं।


मुझे लगता है कि आप इसे फंक्शन के बजाय प्रोग्राम बनाने और कुछ बाइट्स को बचाने के x=function(d){साथ ड्रॉप कर सकते हैं d=scan(,'')
पजाकोंग

धन्यवाद! जिससे तीन बाइट बच गईं। मैंने पहले स्कैन का उपयोग नहीं किया है।
ऑस्टिन

4

ईएस 6, 89 बाइट्स

d=>fetch('http://enwp.org/'+d).then(r=>r.text().then(t=>alert(t.split`Canada`.length-1)))

अफसोस की बात है कि सभी वादों का अनावरण आकार को दंडित करता है: /


अच्छा जवाब, साइट पर आपका स्वागत है!
DJMcMayhem

1
युगल टिप्पणियाँ। आप July_1कुछ बाइट्स को सहेजने के लिए शेष प्रश्नों के रूप में "इनपुट प्रारूप में है" उसी तरह लागू कर सकते हैं । आपके पास उपयोग करने में त्रुटि भी हैsplit().length() , जो आपको लक्ष्य से अधिक प्रतिक्रिया देगा।
इवानशेच जुएल

इनपुट प्रारूप पर @IvanSanchez के साथ सहमति दें और इसके -1बाद की जरूरत है .length, लेकिन आप https:URL के भाग को छोड़ कर कुछ बाइट्स बचा सकते हैं , और एक जोड़े को बचाने के split'Canada'बजाय (लेकिन बैकटिक्स के साथ) का उपयोग करें split('Canada')!
डोम हेस्टिंग्स

वाह, बैकटिक्स के बारे में कोई पता नहीं था! मैंने बताए गए बदलाव किए हैं।
यार्दग्लासऑफकोड

फ़ायरफ़ॉक्स आपको //आफ्टर ड्रॉप करने की अनुमति देता है http
user2428118

3

रूबी + कर्ल, 44 बाइट्स

p`curl -L enwp.org/#$_`.scan(/Canada/).size

ruby -n+ 43 बाइट्स। जैसे इनपुट लेता है July_1


2

क्लोजर, 71 बाइट्स

#(count(re-seq #"Canada"(slurp(str"https://en.wikipedia.org/wiki/"%))))

हाँ, इसका उपयोग करना अच्छा होगा http://enwp.orgलेकिन मुझे लगता हैslurp है पुनर्निर्देश (?) को नहीं संभालता। अनाम फ़ंक्शन जो "जुलाई 1" प्रारूप में दिन लेता है।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.