इलिप्सिस का बहुवचन कैसे करें?


14

यह स्पष्ट रूप से दीर्घवृत्त है।

एक चैट संदेश से प्रेरित ।

आपकी चुनौती

शब्दों की एक सूची या स्थान या अल्पविराम से अलग स्ट्रिंग को देखते हुए, दीर्घवृत्तीयता उन्हें बताती है।

दीर्घवृत्तीयो-इये एक शब्द:

  1. शब्द से शुरू करें।
  2. मूल शब्द के पहले अक्षर को अंत तक जोड़ें।
  3. मूल शब्द के अंतिम अक्षर के 2 को अंत में जोड़ें।
  4. मूल शब्द के दूसरे-से-अंतिम अक्षर को अंत तक जोड़ें।
  5. मूल शब्द के पहले अक्षर को अंत तक जोड़ें।
  6. मूल शब्द के अंतिम अक्षर को अंत तक जोड़ें।
  7. एक बार चरण 5 और 6 दोहराएं।
  8. हो गया!

आप मान सकते हैं:

  • इनपुट शब्द केवल अल्फ़ान्यूमेरिक होंगे
  • इनपुट और आउटपुट एक अंतरिक्ष-पृथक स्ट्रिंग या सूची हो सकती है
  • इनपुट में केवल शब्द होंगे
  • शब्द कम से कम 2 अक्षर लंबे होंगे
  • इनपुट रेगेक्स से मेल खाएगा /^[a-z0-9]{2,}( [a-z0-9]{2,})*$/i
  • आपके पास एक अलग इनपुट और आउटपुट प्रारूप हो सकता है
  • और भी आने को है...

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

ellipsis -> ellipsisessieses
goat -> goatgttagtgt
covfefe -> covfefeceefcece
programmer5000 -> programmer5000p000p0p0
up vote down goat -> upuppuupup voteveetveve downdnnwdndn goatgttagtgt
it is golf yo -> itittiitit isissiisis golfgfflgfgf yoyooyyoyo
crossed out 44 is still 44 -> crossedcddecdcd outottuotot 4444444444 isissiisis stillslllslsl 4444444444

शॉर्टस्टार्टस्टस्ट उत्तरदाता इनरनिनीन बाइट्सबसेबल्स विंड्सस्न्स्वाइस!


बहुत यकीन है कि "ellipsisessieses" में "e" s "ellipses" से है (पहले "e" को छोड़कर)
Leaky Nun

15
मैं अभी भी नहीं जानता कि कैसे ellipsis का बहुवचन करना है ... EDIT : जाहिरा तौर पर, यह दीर्घवृत्त है।
21 अक्टूबर को पूरी तरह से

1
चरण 2 के लिए, मुझे लगता है कि यह सिर्फ एक ई जोड़ना चाहिए, पहला अक्षर नहीं जोड़ना चाहिए
बेंजीन

@benzene जो अधिक समझ में आता है, लेकिन अब बहुत देर हो चुकी है।
प्रोग्रामर

2
यह दीर्घवृत्त है । अन्य बहुवचन है कि एक ही वर्तनी लेकिन एक शब्द -is और एक शब्द -e में समाप्त होने में समाप्त होने के लिए अलग अलग उच्चारण कर रहे हैं कुल्हाड़ियों और ठिकानों

जवाबों:


16

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

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

जोनाथन एलन को 1 बाइट धन्यवाद दिया

तार के सरणियों पर काम करता है।

s=>s.map(s=>s+'01120101'.replace(/./g,n=>s.substr(-n,1)))

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


वाह, यह अच्छा है! अच्छी नौकरी!
प्रोग्रामर

मेरा मानना ​​है कि आप के 21102121साथ 01120101और n-2साथ की जगह एक बाइट बचा सकते हैं -n
जोनाथन एलन

@JonathanAllan अच्छा कैच। धन्यवाद!
अरण्युलद

11

जेली ,  13 12  11 बाइट्स

⁽×ʠb3’ịṭµ€K

एक पूर्ण कार्यक्रम जो पात्रों की सूची की सूची लेता है और अंतरिक्ष से अलग आउटपुट प्रिंट करता है।

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

कैसे?

⁽×ʠb3’ịṭµ€K - Main link: list of lists of characters e.g. ["this","is","it"]
        µ€  - for each word in the input:            e.g. "this"
⁽×ʠ         -   base 250 literal 5416                     5416
   b3       -   converted to base 3                       [2,1,1,0,2,1,2,1]
     ’      -   decrement                                 [1,0,0,-1,1,0,1,0]
      ị     -   index into the word                       "tssitsts"
       ṭ    -   tack to the word                          ["this",["tssitsts"]]
          K - join the results with spaces                ["this",["tssitsts"]," is",["issiisis"]," it",["ittiitit"]]
            - implicit print                              thistssitsts isissiisis itittiitit

वैकल्पिक रूप से शब्दों की सूची शब्दों की सूची 11 बाइट्स में भी संभव है :

⁽×ʠb3’ị;@µ€

⁽×ʠb3’4,⁵Bj-एक ही बाइट काउंट के लिए भी प्रतिस्थापित किया जा सकता है
( [4,10]बाइनरी इसमें [[1,0,0],[1,0,1,0]]शामिल -1है [1,0,0,-1,1,0,1,0])।


क्या आपको रिक्त स्थान के साथ परिणामों में शामिल होने की आवश्यकता है? आपको सूची / सूचियों की सूची का उत्पादन करने की अनुमति है।
प्रोग्रामर

@ programmer5000 हाँ, रिक्त स्थान के साथ जुड़ना यहाँ वैकल्पिक है
ASCII-only

@ programmer5000 एक वैकल्पिक 11 बटर है जो एक सूची देता है जो मैंने मुख्य उत्तर के नीचे दिया है (ध्यान दें कि मुख्य एक को 10 से नीचे लाने का कोई तरीका नहीं है Kक्योंकि एक विवादास्पद लिंक के रूप में लौटी हुई सूची एक नहीं होगी गहरा स्तर, जिसकी मैं कल्पना करता हूं कि लैक्स I / O बहुत दूर है - जो कि ["this", "is", "it"]रिटर्न वैल्यू के इनपुट के लिए है [['t','h','i','s',"tssitsts"],['i','s',"issiisis"],['i','t',"ittiitit"]](जहां "..." ... वर्णों की सूची है) और इसे पूर्ण प्रोग्राम के रूप में प्रिंट करने के लिए छोड़ना होगा। सभी एक साथ thistssitstsisissiisisitittiitit)
जोनाथन एलन

7

05AB1E , 12 बाइट्स

εD•Lz•3вÍèJ«

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

व्याख्या

ε              # apply on each word in input
 D             # duplicate the word
  •Lz•         # push the base-255 compressed number 5416
      3в       # convert to a list of base-3 digits (yields [2, 1, 1, 0, 2, 1, 2, 1])
        Í      # subtract 2 from each (yields [0, -1, -1, -2, 0, -1, 0, -1])
         è     # index into the word with these numbers
          J    # join to string
           «   # append to the original word

1
हेहे, महान दिमाग ...
जोनाथन एलन

@JonathanAllan: हाँ, हमारे पास बिल्कुल वही विचार था जो ऐसा लगता है। जेली कम संपीड़न ने इस बार दिन जीता :)
एमिगा

6

रेटिना , 52 49 बाइट्स

3 बाइट्स अरनौल्ड की बदौलत।

(\w)(\w+)
$1$2$1
(.)(.)(.)\b
$1$2$3$2$2$1$3$2$3$2

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


5
कोड की वह तीसरी पंक्ति मुझे टोटल रिकॉल के एक म्यूटेंट की याद दिलाती है।
जोनाथन एलन

@JonathanAllan जो हिच-हाइकर गाइड टू द गैलेक्सी में उल्लिखित एक्सेन्ट्रिक गैलम्बिट्स से प्रेरित था।
नील



4

चारकोल , 20 बाइट्स

F⪪S «ι↑E”o∨↙8”§ι±Iκ→

इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है। केवल इसे कोड करने के बाद @ अरनुल्द का जवाब पढ़ने के लिए हुआ था लेकिन यह मूल रूप से इसका एक बंदरगाह है। स्पष्टीकरण:

F   «                   Loop over
  S                     Input string
 ⪪                       Split at spaces
     ι                  Print the word
        ”o∨↙8”          Compressed string 01120101
       E                Map over each character
                 Iκ     Cast character to integer
                ±       Negate
              §ι        Circularly index into word
      ↑                 Print array upwards, prints each element rightwards
                    →    Move right


@ ASCII- केवल आपको -rsध्वज के लिए अतिरिक्त बाइट्स नहीं जोड़ना होगा ?
नील

मुझे यकीन नहीं है, मुझे लगता है? -rsहालांकि इनपुट प्रॉम्प्ट को प्रिंट करने को अक्षम करना है
केवल

क्या मुझे -rsइसके बजाय मोड को डिफ़ॉल्ट बनाना चाहिए ?
केवल


3

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

s=>s.map(s=>s+(a=s[l=s.length-1],b=s[0])+a+a+s[l-1]+b+a+b+a)

एक सरणी के रूप में इनपुट लेता है, और एक सरणी आउटपुट करता है।

-9 बाइट्स प्रोग्रामर 5000 के लिए धन्यवाद

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


3

मैथेमेटिका, 89 बाइट्स

((f[a_]:=#~StringTake~a;k=#<>(q=f@1)<>(w=f[-1])<>w<>f@{-2}<>q<>w<>q<>w)&/@StringSplit@#)&

1
कोई गणितज्ञ Ellipsisessiesesबिलिन नहीं है? :(
प्रोग्रामर

3

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

@ जोनाथन के उत्तर में उसी चाल का उपयोग करता है ।

m+dsm@dttkj5416 3

यहाँ यह कोशिश करो! या परीक्षण सूट की जाँच करें (इसे कुछ समय दें)।

मेरे पायथन समाधान का पोर्ट, 19 बाइट्स 18 बाइट्स :

m+dsm@d_k+0j1144 3


3

पारदोक (v0.2.10), 13? बाइट्स (CP-1252)

µ96Qó3BÌDX=v+

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

शब्दों की एक सूची लेता है, और ढेर पर शब्दों की एक सूची में परिणाम होता है।

बेस -3 चाल पर एक छोटा बदलाव। शायद यह मेरे आधार 250-जो भी कंप्रेसर पर काम करने का समय है।

स्पष्टीकरण:

μ             .. Map the following block over each word (the block is
              .. terminated by }, but that doesn't exist, so until EOF)
              .. (The word is on the stack now.)
 96Qó         .. 96 * 26 (Q in base 26) = 2496, a hack to prevent us from
              .. needing a space to separate this from the following number.
     3B       .. Convert 2496 to base 3 to get [1,0,1,0,2,1,1,0]
       ÌD     .. Negate and reverse to get [0,-1,-1,-2,0,-1,0,-1]
         X    .. Push the loop variable: the word being mapped over
          =v  .. Index, vectorize; map over the indices by indexing them
              .. into the word
            + .. Concatenate with the original word

(बाइट-काउंटिंग प्रश्न: अब जब मैं वास्तव में TIO में यह प्रदर्शित कर रहा हूं, तो यह स्टैक पर शब्दों की एक सूची लेता है और स्टैक पर शब्दों की एक सूची में परिणाम होता है, लेकिन आप वास्तव में शब्दों की सूची के साथ बहुत कुछ नहीं कर सकते हैं जब तक आप you द्वारा शुरू किए गए ब्लॉक को बंद नहीं करते हैं। क्या मुझे उस समापन ब्रेस की गणना करनी चाहिए? '


1
क्या मुझे उस बंद कंस को रोकना चाहिए? हां, अगर आपको जरूरत है।
आउटगॉल्फ

3

वोल्फ्राम भाषा / गणित, 66 बाइट्स

StringJoin[StringSplit[#,""]/.{a_,___,b_,c_}:>{#,a,c,c,b,a,c,a,c}]&

बस इसे जल्दी असली मार दिया, यहाँ या वहाँ एक मामूली सुधार हो सकता है।




2

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

a->{int i=0,l;for(String s:a){char c=s.charAt(0),d=s.charAt(l=s.length()-1);a[i++]+=""+c+d+d+s.charAt(l-1)+c+d+c+d;}}

इनपुट को स्ट्रिंग-एरे के रूप में लेता है, और बाइट्स को बचाने के लिए एक नया वापस करने के बजाय इस मूल सरणी को संशोधित करता है।

सबसे अधिक संभावना हो सकती है कुछ और ..

स्पष्टीकरण:

इसे यहाँ आज़माएँ।

a->{                          // Method with String-array as parameter and no return-type
  int i=0,                    //  Index-integer (starting at 0)
      l;                      //  Length-integer which we use multiple times
  for(String s:a){            //  Loop over the input array
    char c=s.charAt(0),       //   The first character of the word
         d=s.charAt(          //   The last character of the word
            l=s.length()-1);  //    and set `l` at the same time to `length()-1`
    a[i++]+=                  //   Append to the current value in the array:
      ""                      //    String so the characters aren't appended as integers
      +c                      //    + the first character
      +d+d                    //    + two times the last character
      +s.charAt(l-1)          //    + the single-last character
      +c+d+c+d;               //    + the first + last character two times
  }                           //  End of loop
}                             // End of method

2

सी # (.NET कोर) , 106 बाइट्स

n=>{for(int i=0,x;i<n.Length;){var h=n[i];x=h.Length-1;char y=h[0],j=h[x];n[i++]=h+y+j+j+h[x-1]+y+j+y+j;}}

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

लैम्ब्डा फ़ंक्शन जो इनपुट को स्ट्रिंग के सरणी के रूप में लेता है, और आउटपुट के लिए मूल सरणी को संशोधित करता है

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