Lípínguapua dopo Pêpê


20

लैंगुआ डू Pê, या P Language, पुर्तगाली के साथ ब्राज़ील और पुर्तगाल में बोली जाने वाली एक भाषा का खेल है। इसे अन्य भाषाओं जैसे डच और अफ्रीकी में भी जाना जाता है। ( विकिपीडिया )

इस भाषा के खेल में कुछ बोलियाँ हैं। अलग-अलग भाषाओं के खेल को यहां तक ​​कि अपनी विशिष्ट बोलियों के साथ खेला जाता है। कुछ लोग पी लैंग्वेज बोलने में निपुण होते हैं और सर्वश्रेष्ठ भी किसी भी टेक्स्ट का मौके पर अपनी पसंदीदा बोली में अनुवाद कर सकते हैं!

पी भाषा

इस चुनौती में, हम डबल टॉक बोली का उपयोग करेंगे ।

P भाषा में पाठ का अनुवाद करने के लिए, पाठ में स्वरों के किसी भी क्रम को एकल pवर्णों के साथ जोड़ा जाता है और उसके बाद स्वरों के अनुक्रम की एक प्रति दिखाई जाती है।

चुनौती

एक फ़ंक्शन या प्रोग्राम लिखें जो एक स्ट्रिंग को इनपुट के रूप में स्वीकार करता है और पी भाषा में इसके अनुवाद को आउटपुट करता है।

  • इनपुट में केवल मुद्रण योग्य ASCII वर्ण होते हैं।
  • आउटपुट में केवल अनूदित इनपुट और वैकल्पिक रूप से अनुगामी न्यूलाइन शामिल हैं।
  • स्वर निम्न में से कोई भी वर्ण हैं aeiouyAEIOUY
  • स्वरों के अनुक्रम को किसी अन्य वर्ण द्वारा सीमांकित किया जाता है। स्ट्रिंग "Aa aa-aa"में तीन स्वर क्रम हैं।
  • अग्रणी आउटपुट स्ट्रिंग से लीडिंग और ट्रेलिंग व्हाट्सएप वैकल्पिक रूप से छोड़ा जा सकता है।

उदाहरण

""                              =>   ""
"Lingua do Pe"                  =>   "Lipinguapua dopo Pepe"
"Hello world!"                  =>   "Hepellopo woporld!"
"Aa aa-aa"                      =>   "AapAa aapaa-aapaa"
"This should be easy, right?"   =>   "Thipis shoupould bepe eapeasypy, ripight?"
"WHAT ABOUT CAPS?"              =>   "WHApAT ApABOUpOUT CApAPS?"
"   Hi "                        =>   "   Hipi " or "Hipi"

दोहरे कोट्स वर्ण "का उपयोग उदाहरणों में इनपुट और आउटपुट स्ट्रिंग्स के परिसीमन के लिए किया जाता है लेकिन जाहिर है कि यह वर्ण किसी भी मान्य इनपुट स्ट्रिंग में भी दिखाई दे सकता है।


2
मुझे यकीन नहीं है कि किसी ने आपको स्टैक के लिए अभी तक स्वागत किया है, इसलिए: कोड गोल्फ स्टैक एक्सचेंज में आपका स्वागत है! अच्छी तरह से निर्दिष्ट पहली चुनौती। :-)
Giuseppe

@Giuseppe तरह के शब्दों के लिए धन्यवाद!
मार्टेन बेमेलिस

इसके अलावा स्पेनिश में es.wikipedia.org/wiki/Jerigonza
leonbloy

जवाबों:


9

जावास्क्रिप्ट (ईएस 6), 35 बाइट्स

s=>s.replace(/[aeiouy]+/gi,'$&p$&')

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

जहां विशेष प्रतिस्थापन पैटर्न का $&अर्थ है प्रतिस्थापित पदार्थ


8
मुझे जानकारी नहीं थी $&। इन सभी वर्षों में, मैं पूरे रेगेक्स को एक कैप्चर ग्रुप में लपेट रहा हूं। किसने कहा कि कोड गोल्फ अव्यवहारिक है ?!
पुनरावर्ती

2
है $&और अधिक सामान्य तरीका है? जावा में यह $0afaik है, और रेटिना दोनों की अनुमति देता है। नहीं पता $&था कि जावास्क्रिप्ट से आया है। या क्या यह .NET फ्लेवर्ड रेगेक्स है, और जावास्क्रिप्ट भी इसका उपयोग करता है?
केविन क्रूज़सेन

9

सेड, 30 , 25 , 21 , 19 बाइट्स

-5 बाइट्स अरनौलड को धन्यवाद!
-4 बाइट्स झबरा के लिए धन्यवाद!
-2 बाइट्स लियो तेनाबाम के लिए धन्यवाद!

s/[aeiouy]\+/&p&/gi

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



7

जाप , 10 बाइट्स

r"%y+"_+ip

कोशिश करो

r"%y+"_+ip     :Implicit input of string
r              :Replace
 "%y+"         :RegEx /[aeiouy]+/gi
      _        :Pass each match through a function
       +       :  Append a copy of the match
        ip     :  Prepended with "p"

बहुत देर हो गई, 2 मिनट! मेरे पास इसका सटीक उत्तर था, सिवाय इसके कि जप्ट 2.0 शॉर्ट रेगेक्स "%v"->\v
अज्ञानता का अवतार

@EmbodimentofIgnorance, आप आवश्यकता होगी \yके बजाय \v
झबरा

6

जावा 8, 40 बाइट्स

s->s.replaceAll("(?i)[aeiouy]+","$0p$0")

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

स्पष्टीकरण:

s->                              // Method with String as both parameter and return-type
  s.replaceAll("(?i)[aeiouy]+",  //  Replace the regex matches
               "$0p$0")          //  With this replacement

रेगेक्स स्पष्टीकरण:

(?i)[aeiouy]+                    // MATCH:
(?i)                             //  Enable case insensitivity
            +                    //  Match one or more
    [aeiouy]                     //  Adjacent vowel characters

$0p$0                            // REPLACEMENT:
$0                               //  The entire match (the vowel 'sequence')
  p                              //  Appended with a literal "p"
   $0                            //  Appended with the entire match again


3

पायथन 3 , 55 बाइट्स

lambda s:re.sub('([aeiouy]+)',r'\1p\1',s,0,2)
import re

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


Sans regex:

पायथन 3 , 101 बाइट्स

def f(s,q=''):i=s[:1];t=i in{*'aeiouyAEIOUY'};return(q+(q!='')*'p'+q+i)*0**t+(s and f(s[1:],(q+i)*t))

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

पायथन 3.8 (पूर्व-रिलीज़): 99 बाइट्स

व्याख्या

एक स्ट्रिंग sऔर एक वैकल्पिक तर्क को स्वीकार करते हुए पुनरावर्ती कार्य q। यदि s( i) का पहला वर्ण स्वर है, तो इसे कतार में संग्रहीत किया जाता है q। यदि नहीं, तो एक स्ट्रिंग दी जाती है जो qअक्षर से बना होता है 'p', qफिर से, चरित्र iऔर स्ट्रिंग के पहले चरित्र के साथ पुनरावर्ती कार्य का परिणाम होता है। जब फ़ंक्शन एक रिक्त स्ट्रिंग का सामना करता है तो पुनरावृत्ति रुक ​​जाती है s


2
रेगेक्स के बिना समाधान प्यार!
मार्टन बेमेलिस

3

05AB1E , 22 20 बाइट्स

.γžÁyå}vyžÁyнåi'py}J

05AB1E दुर्भाग्य से किसी भी regexes नहीं है।
मुझे वास्तव में डुप्लिकेट पसंद नहीं हैžÁyнå , लेकिन मैं वर्तमान में विकल्पों की तलाश में थोड़ा व्यस्त हूं।

-2 बाइट्स @Grimy को धन्यवाद मुझे निरंतर दिखाने के लिए मैं भी अस्तित्व में नहीं था (और विकी पेज से गायब था ..)।)

इसे ऑनलाइन आज़माएं या सभी परीक्षण मामलों को सत्यापित करें

स्पष्टीकरण:

               # Group the characters in the (implicit) input-string by:
  žÁ             #  Push vowels builtin: "aeiouyAEIOUY"
    yå           #  And check if the current character is in this string
 }v              # After grouping: loop over each group `y`:
   y             #  Push group `y`
    žÁyнåi   }   #  If the first character of the group is a vowel:
          'p    '#   Push a "p"
            y    #   And push group `y` again
              J  #  Join everything on the stack together to a single string
                 # (after the loop, implicitly output the result)

žÁइसके बजाए žOआपको छोड़ देता है l
ग्रिमि

@ मिरी शायद मुझे विकी पेज के बजाय info.txt फ़ाइल का उपयोग शुरू करना चाहिए .. -_- '
केविन क्रूज़सेन

वे दोनों बहुत सारी आज्ञाओं को याद कर रहे हैं, हालांकि वे समान नहीं हैं (उम्मीद है। कभी-कभी मुझे आश्चर्य होता है कि क्या गुप्त आज्ञाएं दोनों से गायब हैं)।
ग्रैमी

1
@Grimy हाँ, शायद हमें info.txt या Wiki पृष्ठों के बजाय स्रोत कोड का उपयोग करना चाहिए । ;)
केविन क्रूज़सेन

2

रेटिना 0.8.2 , 17 बाइट्स

i`[aeiouy]+
$&p$&

इसे ऑनलाइन आज़माएं! लिंक में परीक्षण के मामले शामिल हैं। स्पष्टीकरण: तुच्छ regexp दृष्टिकोण; iमामले असंवेदनशीलता पर झंडा बदल जाता है (रेटिना पहले से ही एक वैश्विक मैच के लिए चूक)।



1

लाल , 92 बाइट्स

func[s][v: charset"aeiouyAEIOUY"parse s[any[to v copy t any v insert(rejoin["p"t])| skip]]s]

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

बेशक रेड की Parseतुलना में बहुत अधिक क्रिया है regex


1
regexयकीन के लिए अधिक क्रिया , लेकिन शायद वह इसे और अधिक दिलचस्प बनाता है। मुझें यह पसंद है!
मार्टन बेमेलिस

@MaartenBamelis धन्यवाद! हां, रेड (जैसे रिबल) एक दिलचस्प भाषा है।
गैलेन इवानोव


1

सन , १, बाइट्स

àº`≈Zö=q╦ⁿ↔èblTï÷

भागो और इसे staxlang.xyz पर डीबग करें!

अनपैक्ड (20 बाइट्स) और स्पष्टीकरण:

Vv'y+c^+:}'++{'pnL}R
                   R    Regex replace using
                        Pattern:
Vv'y+                     Push "aeiou", push "y", and concatenate
     c^+                  Copy, convert copy to all caps, and concatenate
        :}                Enclose in []
          '++             Push "+" and concatenate
                        And replacement:
             {    }       Block:
              'p            Push "p"
                n           Copy second item (matching substring) to top
                 L          Listify
                          Implicit concatenate
                        Implicit print

Stax में कोई केस-असंवेदनशील नियमित अभिव्यक्ति नहीं है, और स्वर बिल्डरों में Y शामिल नहीं है। प्रलेखन आपको एक ब्लॉक को प्रतिस्थापन के रूप में उपयोग करने के बारे में नहीं बताएगा, लेकिन फिर भी यह एक कार्यशील विशेषता है।

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