उस अच्छे मेम का उपयोग करें


12

वर्तमान में इंटरनेट पर एक मेम है जो एक वाक्य लेने, अर्थ को उलटने और n'tअंत में जोड़ने से मिलकर बनता है । उदाहरण के लिए, I am smallबन जाता हैI am talln't

चुनौती

चुनौती के लिए, हम इसे सरल बनाएंगे: आपका कार्य यह पता लगाना होगा कि जब भी किसी वाक्य में कोई नकारात्मकता आए, और इसे n'tअंत में जोड़े गए 'सकारात्मक' के साथ बदल दें । कुछ पेचीदा हिस्से होंगे जिन्हें नियमों में समझाया जाएगा।

नियम

  • आपको एक स्ट्रिंग को इनपुट के रूप में लेना होगा , और एक स्ट्रिंग को आउटपुट के रूप में वापस करना होगा ।
  • इनपुट लोअरकेस में एक वाक्य होगा , केवल .और ,विराम चिह्न के रूप में।
  • आपको किसी भी no <any_word>या के not <any_word>साथ प्रतिस्थापित करना होगा <any_word>n't
  • no/ notएक शब्द होना चाहिए और एक विकल्प नहीं है: आपको कुछ भी बदलने की ज़रूरत नहीं हैnone of those
  • यदि शब्द पहले से ही खत्म हो गया है n, तो आपको इसके n'tसाथ बदलना होगा 't: no planबन plan'tऔर नहीं plann't
  • जब noया notकिसी भी शब्द, विराम चिह्न या किसी अन्य के द्वारा पीछा नहीं कर रहा है no/ not, आप के साथ बदलने के लिए है yesn't
  • यौगिक शब्द एक शब्द के रूप में गिना जाता है। इसलिए यदि no-opसबस्ट्रिंग सम्‍मिलित है no, तो उसमें शब्‍द सं। तो परिणाम होगा no-opऔर नहीं -opn't
  • आपको व्याकरण की त्रुटियों के बारे में चिंता करने की आवश्यकता नहीं है। उदाहरण के लिए, there is no wayपरिणाम होगा there is wayn't
  • कोई मानक खामियों की अनुमति नहीं है।
  • यह , इसलिए सबसे छोटा कोड जीतता है।

कुछ उदाहरण हैं, भले ही यह चुनौती अभी के लिए साफ दिखती है।

उदाहरण

इनपुट: मुझे कोडगॉल्फिंग पसंद है, लेकिन मुझे छोटे कार्यक्रम पसंद नहीं हैं। क्या यह वाक्य समझ में आता है ... बिल्कुल नहीं।
आउटपुट: मैं कोडगुल्फिंग से प्यार करता हूं, लेकिन मुझे छोटे कार्यक्रम पसंद नहीं हैं। क्या यह वाक्य समझ में आता है ... बिल्कुल नहीं।

इनपुट : आपको आमंत्रित नहीं किया गया है बाहर जाओ।
आउटपुट : आपको आमंत्रित नहीं किया गया है। बाहर जाओ।

इनपुट : मैं ठीक नहीं हूं, मेरे पास कोई योजना नहीं है और मेरे पास कोई बंदूक नहीं है
आउटपुट : मैं ठीक नहीं हूं, मेरे पास योजना नहीं है और मैं नहीं हूं

इनपुट : ओह नो नो नो आई मना।
आउटपुट : ओह हां हां मना नहीं करना चाहिए।

इनपुट : अरे नहीं नहीं नहीं, मैं मना करता हूं।
आउटपुट : ओह, हाँ हाँ नहीं, मैं मना नहीं कर रहा हूँ।

इनपुट : मैं इस पर विश्वास नहीं कर सकता, आप कोडगुल्फ़ नहीं कर सकते।
आउटपुट : मैं इस पर विश्वास नहीं कर सकता, आप कोडगुल्फ़ नहीं कर सकते।

इनपुट : ओह नहीं ... उसने फिर से किया।
आउटपुट : ओह हाँ ... उसने फिर से ऐसा नहीं किया।

इनपुट : n't एक शब्द नहीं है, केविन। तो यह नहीं है।
आउटपुट : एन वर्ड नहीं है, केविन। तो यह नहीं है।

इनपुट : क्या यह सभी के लिए स्पष्ट नहीं है
आउटपुट : यह सभी के लिए नहीं है

इनपुट : यह समझदारी नहीं है ...
आउटपुट : यह समझदारी नहीं है ...


1
परिचय में, नहीं I am smallबनना चाहिए I am bign't?
रेडक्लोवर

4
एक बिंदु कहता है "इनपुट विली [...] केवल और केवल।", के साथ। एक अन्य "नो-ऑप" को संदर्भित करता है। लेकिन इसमें एक "-" शामिल है। तो "-" की अनुमति है या नहीं?
पुनरावर्ती

no nपरिणाम में होना चाहिए nn'tया n't?
केविन क्रूज़सेन

no nबोना परिणाम n'tक्योंकि 'शब्द' के nसाथ खत्म n
यादृच्छिक आदमी

@ सोकू छोटे, लम्बे, बड़े, छोटे, बड़े, लंबे, छोटे आदि सभी का परस्पर उपयोग किया जाता है। यह वास्तव में सवाल के लिए कोई फर्क नहीं पड़ता। लेकिन छोटे के लिए सबसे तार्किक एनटोनियम बड़ा होगा, हाँ।
येट्स

जवाबों:


5

रेटिना , 86 70 65 बाइट्स

T`-'`L
\bnot?\s+(?!not?\b)(\w+?)n?\b
$1n't
\bnot?\b
yesn't
T`L`-'

-16 बाइट्स @ @ नील को धन्यवाद ।
-5 बाइट्स थैंक्स टू @ovs

इसे ऑनलाइन आज़माएं।

स्पष्टीकरण:

T`-'`L             # Replace all "-" with "A" and all "'" with "B" to store them

\bnot?             # Then replace the word "no" or "not",
 \s+               #  followed by 1 or more whitespaces,
 (?!not?\b)(\w+?)  #  followed by a word/letter that is not "not" or "no"
 n?\b              #  minus a single trailing "n" if there are any
$1                 # with: the word/letter
 n't               #  appended with "n't"

\bnot?\b           # Then replace any remaining loose "no" or "not"
yesn't             # with "yesn't"

T`L`-'             # And finally replace all "A" with "-" and all "B" with "'" again

मुझे लगता है कि ऐसा नहीं होना चाहिए
मृत पॉसम

@DeadPossum हाँ, इस बारे में खुद अभी तक सोचा है और पहले से ही ओपी से पूछा है कि "n't" इनपुट में संभव है या नहीं।
केविन क्रूज़सेन

1
यह भी अजीब है
मृत पॉसम

1
मुझे लगता है कि मैंने इसे 70 बाइट्स तक ले लिया है
नील

1
Lयहाँ एक शॉर्टहैंड है A-Z, जो 2 बाइट्स को बचाता है T`-'`ABऔर इसके विपरीत।
नील

4

पायथन 2 , 208 123 113 146 बाइट्स

lambda s:re.sub(r"\bnot?\b(?!['-])(\s(?!not?(\b)(?!['-]))([\w'-]+))?",lambda m:(m.group(3)or"yes")+"n't"[(m.group(3)or'')[-1:]=='n':],s)
import re

इसे ऑनलाइन आज़माएं!

क्योंकि में समाप्त होने वाले शब्दों के बाइट्स की एक गुच्छा खो दिया n'tया n। या तो छोटा है, लेकिन दोनों को संभालना लंबा था।





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