दस सौ सबसे आम शब्द


9

यह प्रश्न इसलिए लिखा गया है क्योंकि "थिंग एक्सप्लेनर" पढ़ने में मजेदार है, और मुझे एक विचार दिया।

लिखें "सामान बनाता है कंप्यूटर बातें करते हैं कि" जिस पर लिखा / अक्षर, संख्या और इस तरह बातें का एक सेट ले जाता है "#%|?और रिटर्न True / 1अगर सभी शब्दों का हिस्सा हैं इस सेट

यदि सभी शब्द उस सेट का हिस्सा नहीं हैं, तो उन शब्दों को वापस करें जो इसका हिस्सा नहीं थे।


इस वेबसाइट को सभी मामलों में सही माना जा सकता है। उस साइट पर चश्मा का पालन करने के लिए नियम लिखे गए हैं।


उदाहरण:

सत्य :

कोड को एक सत्य मान वापस करना चाहिए यदि पहली क्षैतिज रेखा के ऊपर का पूरा पाठ इनपुट के रूप में चिपकाया जाता है।

निम्नलिखित लाइनों को एक सत्य मान वापस करना चाहिए (इनपुट द्वारा अलग किया गया है ###)

This returns "Hello, World!"
###
tHiS rEtUrNs TrUe...
###
Thing Explainer is a book written by a man.
The man writes books with simple words.
###
This set of stuff "#!^{>7( must return true

मिथ्या :

निम्नलिखित उदाहरणों में, इनपुट और आउटपुट द्वारा अलग किया जाता है ***। अलग-अलग परीक्षण के मामलों से अलग हो जाते हैं ###

This code doesn't return "Hello, World!"
***
code
###
tHiS rEtUrN"s false...
***
s
false

अधिक विस्तृत नियम:

  • आप उपयोग कर सकते हैं इस अपने कोड का परीक्षण करने के लिए।
  • गैर-अक्षरों को कोड द्वारा रिक्त स्थान के रूप में व्याख्या की जाती है, जैसे शब्दों को छोड़कर 'wasn't'। एपोस्ट्रोफ्स वाले शब्द जो रिटर्न करते trueहैं, सूची में शामिल हैं
    • उदाहरण के लिए: foo123barलौटना चाहिए fooऔर bar, क्योंकि वे सूची का हिस्सा नहीं हैं, और 123रिक्त स्थान के रूप में व्याख्या की जा सकती है
  • इनपुट में केवल मुद्रण योग्य ASCII कोड बिंदु [10, 32-126] होंगे।
  • शब्दों में मिश्रित केस अक्षर हो सकते हैं। दूसरा परीक्षण मामला देखें।
  • शब्दों की सूची
    • इनपुट के रूप में लिया जाना चाहिए (STDIN, फ़ंक्शन तर्क या समकक्ष)
    • संशोधित किया जा सकता है (शब्दों को न्यूलाइन, अल्पविराम आदि द्वारा अलग किया जा सकता है, और आप सूची को सॉर्ट कर सकते हैं)
    • ध्यान दें कि आप इस सूची का उपयोग नहीं कर सकते (यह समान नहीं है)
  • आउटपुट आपके किसी भी प्रारूप पर हो सकता है
  • आउटपुट ऊपरी, निचला या मिश्रित मामला (वैकल्पिक) हो सकता है
  • आउटपुट में कोई प्रतीक नहीं होंगे

रिकॉर्ड के लिए, जोनाथन एलन को एक अजीब कोने का मामला मिला: XKCD पर कार्यान्वयन वास्तव में अगले गैर- [AZ] [az] ['] - उदाहरण के लिए find's found, अपोस्ट्रोप के बाद किसी भी पत्र की अनदेखी करेगा और find'qazxswedc found'दोनों ही कुछ भी नहीं लौटाते हैं, जबकि find'qazx.swedc foundरिटर्न swedc

आप चुन सकते हैं कि आप कुछ भी नहीं चाहते हैं find'qazxswedc found', या वापस नहीं लौटना चाहते हैं qazxswedc। के qazx, swedcलिए find'qazx.swedcभी लौटना ठीक है।



मैं सकारात्मक नहीं हूँ, हालांकि यह एक दुपट्टा है। आपकी चुनौती थोड़ी अलग है, क्योंकि आपको गैर-सरल शब्दों को वापस करने की आवश्यकता है। और, आपके पक्ष में, आपके पास वास्तव में रोजमर्रा की अंग्रेजी में लिखा गया एक सामान्य चश्मा है। codegolf.stackexchange.com/questions/53323/…
जेम्स

वैधानिक रूप से टाइप की गई भाषा के लिए, जो रिटर्न प्रकार को व्यक्त नहीं कर सकती है , Booleanया Array<String>खाली सरणी / सूची को वापस करने की अनुमति होगी?
21

@ CAD97 उस मामले के लिए जहां सभी शब्द सरल हैं? आप चयन कर सकते हैं कि आप कैसे सत्य मूल्य प्रदर्शित करना चाहते हैं, यह पूर्णांक / स्ट्रिंग हो सकता है 1। एक खाली आउटपुट अनुमेय नहीं है।
स्टिव ग्रिफ़िन

मैं find'qazxswedcइनपुट के लिए नियमों की नई व्याख्या से भ्रमित हूं । क्या हम या हम प्रेरितों पर विभाजित नहीं हैं? उदाहरण के लिए, isn'tरिटर्न true(यह सूची में है), लेकिन isnरिटर्न isn, क्योंकि यह सूची में नहीं है। उस तर्क से, मैं "apostrophes पर विभाजित नहीं करता" और इसलिए find'qazxswedc foundरिटर्न के साथ गया find'qazxswedc
AdmBorkBork

जवाबों:


2

PowerShell v3 +, 105 92 बाइट्स

param($a,$b)$x=@();-split($b-replace"[^a-zA-Z']",' ')|%{if($_-notin$a){$x+=$_}};($x,1)[!$x]

सरल शब्दों की तरह लेता है $a, और जैसे शब्द $b। सहायक बनाता है $x। प्रत्येक शब्द को लें $bऔर किसी भी बुरे अक्षर से छुटकारा न पाएं, फिर प्रत्येक की जांच करें |{...}। यदि वह शब्द अंदर नहीं है $a, तो हम उसे जोड़ते हैं $x। अंत में, हम चुनते हैं $xया 1नहीं $x। वह wordsया तो बाहर भेजा जाता है, या 1

कोशिश करने के लिए कुछ शब्द

PS C:\Tools\Scripts\golfing> ('This returns "Hello, World!"','tHiS rEtUrNs TrUe...','Thing Explainer is a book written by a man.
The man writes books with simple words.','This set of stuff "¤!^¤>7\ must return true'|%{"$_";(.\ten-hundred-most-common-words.ps1 (gc .\ten-hundred-most-common-words.txt) $_)})-join"`n###`n"
This returns "Hello, World!"
###
1
###
tHiS rEtUrNs TrUe...
###
1
###
Thing Explainer is a book written by a man.
The man writes books with simple words.
###
1
###
This set of stuff "¤!^¤>7\ must return true
###
1

PS C:\Tools\Scripts\golfing> ("This code doesn't returns Hello, World!",'tHiS rEtUrN"s false...'|%{"$_`n***`n"+(.\ten-hundred-most-common-words.ps1 (gc .\ten-hundred-most-common-words.txt) $_)})-join"`n###`n"
This code doesn't returns Hello, World!
***
code
###
tHiS rEtUrN"s false...
***
s false

2

पायथन, 93 बाइट्स

import re
lambda w,s:[w for w in re.sub("[^'\w]|\d|_",' ',w).split()if w.lower()not in s]or 1

सभी परीक्षण के मामले विचारधारा पर हैं

सूची का प्रीप्रोसेसिंग को विभाजित करना |और इसे अंदर डालना है set(जो मुझे लगता है कि ठीक है अगर पूर्व-छंटाई की अनुमति है)। इनपुट शब्द के रूप में wऔर सेट के रूप में s

यदि यह अनुमति नहीं है तो यह not in sबनने के साथ 98 बाइट्स हो जाता है not in set(s)

हम इसे ऊपरी और निचले मामले के पात्रों के सभी क्रमांकन और 8 बाइट्स को बचाने के लिए प्रीप्रोसेस कर सकते हैं, लेकिन मुझे लगता है कि यह बहुत दूर जा सकता है (यह एक बहुत बड़ा सेट होगा)।

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