ओट वेस थे बिस्ट उफ टोमिस


36

मुझे बस इस सरल सायफ़र से प्यार है, यह बहुत मजेदार है न कि मानव-पढ़ने योग्य शब्दों को पढ़ना और अंतराल को भरना ...

Ot wes thi bist uf tomis, ot wes thi wurst uf tomis, 
ot wes thi egi uf wosdum, ot wes thi egi uf fuuloshniss, 
ot wes thi ipuch uf biloif, ot wes thi ipuch uf oncridaloty, 
ot wes thi siesun uf loght, ot wes thi siesun uf derkniss, 
ot wes thi sprong uf hupi, ot wes thi wontir uf dispeor, 
wi hed ivirythong bifuri as, wi hed nuthong bifuri as, 
wi wiri ell guong dorict tu hievin, wi wiri ell guong dorict thi uthir wey – 
on shurt, thi piroud wes su fer loki thi prisint piroud, 
thet sumi uf ots nuosoist eathurotois onsostid un ots biong riciovid, 
fur guud ur fur ivol, on thi sapirletovi digrii uf cumperosun unly.

नियम अति-सरल हैं:

  • कुछ पाठ को इनपुट के रूप में स्वीकार करें (एससीआई अक्षर, ऊपरी / निचले मामले पत्र और विराम चिह्न)।
  • प्रत्येक स्वर के लिए, इसे अगले स्वर के लिए घुमाएँ, या वापस शुरू करें।
    • a => ई
    • ई => मैं
    • मैं => ओ
    • ओ => यू
    • यू => ए
  • ऊपरी मामले स्वर ऊपरी मामले में रहते हैं, निचले मामले स्वर कम मामले में रहते हैं।
  • इन रूपांतरणों के बाद पाठ को आउटपुट करें।
  • लहजे का समर्थन करने की आवश्यकता नहीं है।
  • अन्य सभी पात्रों को अपरिवर्तित रहना चाहिए।
  • इसे कम से कम बाइट्स में करने की कोशिश करें।
  • कोई पुरानी भाषा जो आपको पसंद हो।

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

It was the best of times, it was the worst of times,
it was the age of wisdom, it was the age of foolishness,
it was the epoch of belief, it was the epoch of incredulity,
it was the season of light, it was the season of darkness,
it was the spring of hope, it was the winter of despair,
we had everything before us, we had nothing before us,
we were all going direct to heaven, we were all going direct the other way –
in short, the period was so far like the present period,
that some of its noisiest authorities insisted on its being received,
for good or for evil, in the superlative degree of comparison only.

बाहर:

Ot wes thi bist uf tomis, ot wes thi wurst uf tomis, 
ot wes thi egi uf wosdum, ot wes thi egi uf fuuloshniss, 
ot wes thi ipuch uf biloif, ot wes thi ipuch uf oncridaloty, 
ot wes thi siesun uf loght, ot wes thi siesun uf derkniss, 
ot wes thi sprong uf hupi, ot wes thi wontir uf dispeor, 
wi hed ivirythong bifuri as, wi hed nuthong bifuri as, 
wi wiri ell guong dorict tu hievin, wi wiri ell guong dorict thi uthir wey – 
on shurt, thi piroud wes su fer loki thi prisint piroud, 
thet sumi uf ots nuosoist eathurotois onsostid un ots biong riciovid, 
fur guud ur fur ivol, on thi sapirletovi digrii uf cumperosun unly.

में:

The quick brown fox jumps over the lazy dog.

बाहर:

Thi qaock bruwn fux jamps uvir thi lezy dug.

में:

Home is where the heart is.

बाहर:

Humi os whiri thi hiert os.

में:

Boaty McBoatface

बाहर:

Buety McBuetfeci

में:

AEIOUaeiou

बाहर:

EIOUAeioua

में:

Programming Puzzles And Code Golf

बाहर:

Prugremmong Pazzlis End Cudi Gulf


4
हम्म। पुरानी अंग्रेज़ी?
Iaxax

10
अभी भी बियोवुल्फ़ की तुलना में आसान पढ़ा जाता है।
स्मेटो

4
मेरे लिए कीवी-ट्रांसलेटर की तरह लग रहा है।
मागू

1
मुझे पसंद है कि कैसे "बुराई" जब "इवोल" के लिए सिफर होता है, उसी तरह से प्रभावी ढंग से उच्चारण किया जाता है।
एनरिको बोरबा

जवाबों:


11

स्टैक्स , 7 बाइट्स

öΦΣòC└∞

इसे चलाएं और डीबग करें

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

स्पष्टीकरण (अनपैक्ड)

Vv:tVV:t
Vv:t           #Push aeiou and ring translate it to input
    VV:t       #Push AEIOU and ring translate it to input

अधिक बचत करने में सक्षम हो सकता है, कोशिश करता रहेगा।


22

MS-SQL, 51 बाइट्स

SQL 2017 या इसके बाद के संस्करण पर काम करता है:

SELECT TRANSLATE(v,'AEIOUaeiou','EIOUAeioua')FROM t

नया फ़ंक्शन TRANSLATEव्यक्तिगत चरित्र प्रतिस्थापन करता है, इसलिए इस चुनौती के लिए आदर्श रूप से अनुकूल है।

इनपुट एक पूर्व मौजूदा तालिका के माध्यम से है टी varchar स्तंभ के साथ वी , हमारे आईओ नियमों के अनुसार

इस स्थिति में केस-सेंसिटिव कोलैशन का उपयोग करके टेबल बनाई जानी चाहिए , या तो केस-सेंसिटिव सर्वर पर चलकर , या COLLATEकीवर्ड का उपयोग करके (वर्ण कुल की ओर गिना नहीं):

CREATE TABLE t(v varchar(max) COLLATE Latin1_General_CS_AS)

EDIT : SSMS "टेक्स्ट टू रिजल्ट्स" विंडो में रिजल्ट को वापस करते हुए ऊपर की लम्बी बोली काट सकता है, यह एक क्लाइंट सेटिंग है, मेरे प्रोग्राम में बग नहीं

ठीक करने के लिए, Tools > Options > Query Results > SQL Server > Results to Text"प्रत्येक कॉलम में प्रदर्शित वर्णों की अधिकतम संख्या" पर जाएं और बढ़ाएं।


1
मैं वास्तव में हैरान हूं कि एसक्यूएल इसके लिए प्रतिस्पर्धी के करीब भी है । इसके अलावा, यह एक अच्छा कार्य है! हमें बताने के लिए धन्यवाद :)
निधि मोनिका का मुकदमा

@NicHartley हाँ, वे प्रत्येक संस्करण में कुछ उपयोगी कार्य जोड़ते हैं। आप इसे REPLACEकुछ ट्रिक्स के साथ भी घोंसला बना सकते हैं : REPLACE(TRANSLATE(v,'1234567890','xxxxxxxxxx'),'x','')एक स्ट्रिंग से सभी अंकों को खत्म करने के लिए, उदाहरण के लिए। अभी भी लंबा है, लेकिन 10 से अधिक नेस्टेड है REPLACE
ब्रैडेक


14

हास्केल , 52 बाइट्स

(a:b)!c|a/=c=b!c|1>0=b!!0
a!b=b
map("aeiouaAEIOUA"!)

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

लिन ने दो बाइट्स को यह बताकर बचाया कि इससे !!0छोटा है head

व्याख्या

यदि आपने हास्केल में कभी भी कोडिंग नहीं की है तो यह संभवतः जिबरिश के ढेर जैसा लगेगा। तो पहले इसे ungolf करते हैं और फिर इसे तोड़ते हैं:

(a:b)!c
 |   a/=c   = b!c
 |otherwise = b!!0
a!b=b
map("aeiouaAEIOUA"!)

पहले हमारे पास एक फ़ंक्शन है !, जो एक स्ट्रिंग sऔर एक चरित्र लेता है c। यदि स्ट्रिंग गैर-रिक्त है तो हमारा पहला पैटर्न मैच इनपुट को स्वीकार करता है। यदि स्ट्रिंग गैर-खाली है तो हम इसके पहले चरित्र की तुलना करते हैं c। यदि यह पहला चरित्र है cतो हम इसे टॉस करने के लिए बराबर नहीं हैं और !फिर से शेष स्ट्रिंग के साथ कॉल करें और c। यदि यह समान है, तो हम स्ट्रिंग में दूसरा वर्ण लौटाते हैं।

हमारा अगला पैटर्न मैच अन्य सभी मामलों में स्ट्रिंग को पकड़ता है, अगर स्ट्रिंग खाली है। इस मामले में हम अभी लौटते हैं c

इन सभी कार्यों में एक चरित्र cऔर एक स्ट्रिंग लेता है और sपहली घटना के बाद चरित्र लौटाता cहै s। यदि हम इसके साथ गुजरते हैं तो यह aeiouaAEIOUAएक ही चरित्र पर हमारा सिफर करेगा। हमारे पूरे फंक्शन को बनाने के लिए हमें इसे स्ट्रिंग में मैप करना चाहिए।


12

रेटिना ,10 9 8 बाइट्स

T`uo`vVA

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

नील को धन्यवाद देकर 1 बाइट बचाया! और मार्टिन को एक और बाइट धन्यवाद!

रेटिना के नए संस्करण में स्वर वर्ग हैं, जो परिणाम को थोड़ा कम करता है। लिप्यंतरण "अन्य" वर्ग का भी उपयोग करता है। तो toवर्ग "aeiouAEIOUA" fromकी तरह दिखता है जबकि वर्ग "uaeiouAEIOUA" की तरह दिखता है

इससे कोई समस्या नहीं होती है क्योंकि दूसरी uमैपिंग Aकभी भी नहीं की जाएगी क्योंकि uपहले से मैप किया गया था a


9 बाइट्स: T`_o`uvUV
नील

यह एक उल्लेखनीय संक्षिप्त उत्तर है!
AJFaraday

@ नील चतुर, धन्यवाद! मैंने सोचा था कि _सेट से इसमें डालने से इसका सचमुच इलाज हो जाएगा, लेकिन ऐसा लगता है कि यह ऐसा नहीं करता है।
FryAmTheEggman

3
आप एक और को शेव कर सकते हैं, लेकिन मैं स्टैक्स को बांधने के लिए प्रतीत नहीं हो सकता, दुर्भाग्य से: tio.run/##HYnBDoIwEAXv/…
मार्टिन

@MartinEnder धन्यवाद! यह एक चतुर सेटअप है, दोनों के बीच मिश्रण है। मैंने Yअभी तक बहुत प्रयोग करने की कोशिश नहीं की है इसलिए मैं कल एक शॉट दूंगा।
FryAmTheEggman

9

पर्ल 5 + -पी, 24 23 बाइट्स

y;AEIOUaeiou;EIOUAeioua

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

-1 बाइट @DomHastings की बदौलत


1
हम -pअब +1 के रूप में नहीं गिनते हैं, इसके बजाय हम मानते हैं कि यह उत्तर "पर्ल 5 + -p" में है।
एर्ग आउटफोलर

1
यह sed में भी काम करता है
Kritii Lithos

1
यदि आप ;सीमांकक के रूप में उपयोग करते हैं तो आप एक बाइट बचा सकते हैं!
डोम हेस्टिंग्स

अपडेट किया गया, @Cowsquack अब और नहीं
नाहुएल फौइलुल

6

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

lambda x:x.translate(str.maketrans('aeiouAEIOU','eiouaEIOUA'))

एक अनुवाद तालिका (शब्दकोश) strस्थिर str.maketransविधि से बनाएं । प्रासंगिक पात्रों का उनके गंतव्य चरित्र में अनुवाद करें।


यह I / O कहाँ प्रदर्शन करता है?
रीयरियरपोस्ट

@reinierpost यह एक फंक्शन है। इनपुट xपैरामीटर के माध्यम से है। अजगर में, लैम्ब्डा फ़ंक्शन को रिटर्न स्टेटमेंट की आवश्यकता नहीं होती है।
म्य्प्टेलियन

6

सी, 85 76 67 65 64 बाइट्स

f(char*c){for(;*c;)putchar(1[index("AEIOUAaeioua",*c++)?:c-2]);}

केविन क्रूज़सेन के जावा उत्तर का पोर्ट । इसे यहाँ ऑनलाइन आज़माएँ ।

के लिए धन्यवाद केविन Cruijssen 9 बाइट्स, करने के लिए गोल्फ के लिए क्रिस्टोफ 11 बाइट्स गोल्फ के लिए और करने के लिए ceilingcat 1 बाइट गोल्फ के लिए।

Ungolfed संस्करण:

f(char* c) { // function taking a char array as parameter and implicitly returning an unused int
    for(; *c ;) // loop over the input
        putchar(1 [index("AEIOUAaeioua", * c++) ?: c-2]); // find the first pointer to the current char in the vowels string, NULL if not present; if it's not NULL, print the next vowel, otherwise just print the char
}

1
लगता है कि जीसीसी से कोई मानक विस्तार नहीं है। मैं इसे php से जानता था और बस कोशिश की।
क्रिस्टोफ़

1
@ क्रिसस्टोफ़ मुझे आपके पुनरावर्तन का उपयोग पसंद है, लेकिन मुझे यकीन नहीं है कि हम एक अनुगामी उत्पादन कर सकते हैं \0। इसके अलावा, यह काम नहीं करता है जब क्लैंग के
OOBalance

1
@Christoph: मैं उत्सुक था कि अपरिभाषित व्यवहार कहाँ था, इसलिए मैंने क्लैंग संस्करण को डीबग किया, कुछ और होने के बाद इसे अनफ़ाल्ट किया। const char *res = strchr("AEIOU...", 0)स्ट्रिंग पॉरल में टर्मिनेटर के लिए एक पॉइंटर लौटाता है। putchar(res[1])स्ट्रिंग शाब्दिक के अंत को पढ़ता है। जीसीसी के साथ यह स्पष्ट रूप से एक और शून्य बाइट खोजने के लिए होता है और यह काम करने के लिए होता है, लेकिन क्लैंग के साथ यह एक 73 'I'(शायद mainस्ट्रिंग स्ट्रिंग शाब्दिक, "यह था ..." से मिलता है, लेकिन मैंने एसम की जांच नहीं की)। इसलिए putchar0 नहीं लौटाता है, और जब *c++कोई अनमैप्ड पेज पढ़ता है तो हम अंततः सेगफॉल्ट हो जाते हैं ।
पीटर कॉर्ड्स

2
@PeterCordes हाँ मैं इसके बारे में पता चला यहाँ एक संदेह होने के बाद। वैसे भी यहां एक और 2 बाइट बच गई f(char*c){for(;*c;)putchar(1[strchr("AEIOUAaeioua",*c++)?:c-2]);}। मुझे लगता है अब के लिए बस इतना ही।
क्रिस्टोफ़

1
@Rogem इसके अतिरिक्त की कम्यूटेटिव प्रॉपर्टी की वजह से a[b]==*(a+b)==*(b+a)==b[a]। इसलिए1[...]==(...)[1]
सीटिंग



5

पायथन 2 , 79 68 67 बाइट्स

-1 बाइट थैंक्स टू @AnnoldPalmer

V='uaeiouAEIOUA'
print''.join((V[1:]+c)[V.find(c)]for c in input())

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


67 बाइट्स । इसके अलावा, क्षमा करें यदि आप सूचनाओं से भर गए हैं, तो मैंने थोड़ी देर में एक टिप्पणी पोस्ट नहीं की है और यह कैसे करना भूल गया।
अर्नोल्ड पामर

@AnnoldPalmer धन्यवाद! यह ठीक है, मैं दूर था और वे सभी मुझे याद कर रहे थे: डी
डेड पॉसम




4

जाप 2.0, 25 21 बाइट्स

मैंने शगी के साथ इस पर गोल्फ खेलने का मजा लिया।

r\v@=`aeia`pu)g1+UbX

इसे यहां चलाएं।



1
@ शैगी जो पूंजी स्वरों के साथ काम नहीं करता है।
ओलिवर

1
उस मामले में ... 22 बाइट्स
झबरा

1
@ शगुन यह मजेदार है ... 21 बाइट्स
ओलिवर

1
अच्छा! मुझे लगता है कि मैंने पहली बार S.p(f)इसका इस्तेमाल किया है।
झबरा

4

जावा 10, 97 87 बाइट्स

s->{for(var c:s){var t="AEIOUAaeioua"+c+c;System.out.print(t.charAt(t.indexOf(c)+1));}}

-10 बाइट्स @Arnauld के जावास्क्रिप्ट उत्तर (उनके 60-बाइट्स संस्करण) से प्रेरित होने के बाद ।

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

स्पष्टीकरण:

s->{                         // Method with character-array parameter and no return-type
  for(var c:s){              //  Loop over the input characters
    var t="AEIOUAaeioua"     //  Temp-String containing the order of vowels 
                             //  (including additional 'A' and 'a'),
          +c+c;              //  appended with two times the current character
    System.out.print(        //  Print:
      t.charAt(              //   The character in String `t` at index:
         t.indexOf(c)+1));}} //    The (first) index of the current character in `t` + 1

4

05AB1E , 14 13 11 बाइट्स

žMDÀ‡žMuDÀ‡

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


1
आप इनपुट को मल्टी-लाइन स्ट्रिंग के रूप में ले कर दो बाइट्स बचा सकते हैं, इसलिए इसकी कोई आवश्यकता नहीं है |और »: इसे ऑनलाइन आज़माएं: 11 बाइट्स
केविन क्रूज़सेन

@ केविनक्रूजसेन धन्यवाद! क्या ऐसा कुछ नहीं है जो हाल ही में 05AB1E रिलीज़ में तय किया गया था?
कलडो

नो आइडिया tbh। इस वर्ष की शुरुआत के बाद से केवल 05AB1E की शुरुआत हुई। यदि आप जानना चाहते हैं तो जब सुविधा जोड़ी गई थी, तब आप 05AB1E चैट में @Adnan पूछ सकते थे ।
केविन क्रूज़सेन


3

एपीएल + विन, 55 बाइट्स

इनपुट स्ट्रिंग के लिए संकेत:

i←(10≥n←'AEIOUaeiou'⍳s)/⍳⍴s←⎕⋄s[i]←'EIOUAeioua'[n~11]⋄s

3

कण्ठमाला, 38 बाइट्स

R T W $TR(T,"AEIOUaeiou","EIOUAeioua")

मम्प्स आम तौर पर एक गाड़ी वापसी नहीं जोड़ते हैं, क्योंकि मुझे आउटपुट से अलग इनपुट की आवश्यकता नहीं दिखती है, यह पहले रन पर थोड़ा अजीब लगता है। उदाहरण के लिए, अंतिम परीक्षण मामले के लिए आउटपुट इस तरह दिखता है:

Programming Puzzles And Code GolfPrugremmong Pazzlis End Cudi Gulf

यदि आप एक गाड़ी वापसी जोड़ना चाहते हैं, तो दो बाइट्स जोड़ें:

R T W !,$TR(T,"AEIOUaeiou","EIOUAeioua")

3

Vim + tpope / vim-abolish , 30 बाइट्स

:%S/{a,e,i,o,u}/{e,i,o,u,a}/g<cr>

वैकल्पिक समाधान, 30 बाइट्स:

Oe,i,o,u<esc>|D:%s/{a,<C-r>"}/{<C-r>",a}/g

मेटा के अनुसार , विम उत्तर प्लगइन्स का उपयोग कर सकते हैं जिसमें कोई बाइट जुर्माना नहीं है। यह एक विम उत्तर नहीं है, बल्कि एक विम + एब्लेस उत्तर है।


एबोलिड एक अत्यंत उपयोगी प्लगइन है। README का यह खंड अच्छी तरह से वर्णन करता है कि यह कमांड ( Subvertकमांड) कैसे काम करता है।


3

CJam , 29 19 बाइट्स

q"aeioua"_eu+_1m<er

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

-10 बाइट्स @Peter टेलर को धन्यवाद

स्पष्टीकरण:

q                       # take all input
 "aeioua"               # push vowel pairs
         _eu            # duplicate, uppercase
            +_          # concatenate, duplicate again
              1m<       # rotate left by 1
                 er     # transliterate

यद्यपि प्रश्न इनपुट के बारे में विशिष्ट नहीं है, मुझे लगता है कि आपको इनपुट लेने के qबजाय संभवतः उपयोग करना चाहिए l। पहला परीक्षण मामला मल्टी-लाइन प्रतीत होता है। इसके अलावा, आप छोटा कर सकते हैं "eioua"करने के लिए _1m<। वास्तव में, आप इसे और आगे बढ़ा सकते हैंq"aeioua"_eu+_1m<er
पीटर टेलर

3

ऑटोहोटकी , 24 बाइट्स

AuotHotkey अपने आप ही केस को संवेदनशील तरीके से अक्षरों को बदल देती है।

a::e
e::i
i::o
o::u
u::a

2

PHP, 90 बाइट्स

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

कोड

function f($s){echo strtr($s,array_combine(str_split(UuAaEeIiOo),str_split(AaEeIiOoUu)));}

व्याख्या

function f($s){
 echo strtr(
       $s,                          #The string to operate
       array_combine(               #combining arrays
            str_split(UuAaEeIiOo),  #splitting this strings
            str_split(AaEeIiOoUu))
              # With array combine php creates an array like
              # ["U"=>"A", "a"=>"e"....and so on]
              # strtr can replace strings in a string, using an array with 
              # the values to replace and with what replace each value.
 );
}

75 बाइट्स अगर php -rइस्तेमाल करने के साथ चलती हैं$argv

<?=strtr($argv,array_combine(str_split(UuAaEeIiOo),str_split(AaEeIiOoUu)));



2

PHP, 38 बाइट्स

बहुत सरल, बहुत रचनात्मक नहीं, strtrस्वरों को बदलने के लिए उपयोग करता है:

<?=strtr($argn,aeiouAEIOU,eiouaEIOUA);

ऑनलाइन चलाएं echo '<input>' | php -nF <filename>या इसे आज़माएं


क्या यह नहीं लगता कि इनपुट पूर्वनिर्धारित चर को सौंपा गया है argn? यदि हां, तो यह मान्य नहीं है; आपको स्ट्रिंग को एक तर्क के रूप में पारित करने और $argv1]इसके बजाय उपयोग करने की आवश्यकता होगी।
झबरा

2
@ झागी नहीं, यदि आप इसे -Fध्वज के साथ चलाते हैं , तो यह कमांड लाइन पर इनपुट के साथ काम करता है। से विकल्पों पर पीएचपी डॉक्स : -F --process-file PHP file to execute for every input line. Added in PHP 5.यह ऑनलाइन चर को परिभाषित करते हैं सिर्फ इसलिए कि कुछ लोगों को स्थानीय स्तर पर पीएचपी स्थापित नहीं है की कोशिश करो, और मैं नहीं मिल सका -Fझंडा TIO में काम कर रहे।
डेविस

1
धन्यवाद, @ डेविड - आज PHP के लिए मेरा "कुछ नया" है :)
झबरा

2

क्यू / केडीबी +, ३६ ३३ बाइट्स

समाधान:

{(v,2#x)1+(v:"aeiouaAEIOUA")?x}@'

उदाहरण:

q){(v,2#x)1+(v:"aeiouaAEIOUA")?x}@'"AEIOUaeiou"
"EIOUAeioua
q){(v,2#x)1+(v:"aeiouaAEIOUA")?x}@'"Programming Puzzles And Code Golf"
"Prugremmong Pazzlis End Cudi Gulf"

स्पष्टीकरण:

स्वरों के सूचकांक को बाहर निकालें, अगले और सूचकांक में धक्का देने के लिए एक जोड़ें। फिर भी लगता है कि इस दृष्टिकोण में काफी सुधार हो सकता है ...

{(v,2#x)1+(v:"aeiouaAEIOUA")?x}@' / the solution
{                             }@' / apply lambda to each character of input
                            ?x    / look up x in...
          (                )      / do together
             "aeiouaAEIOUA"       / lookup list
           v:                     / save as v
        1+                        / add one
 (     )                          / do together
    2#x                           / take 2 copies of x
  v,                              / prepend v

बोनस:

मेरा पुराना ** 36 बाइट (()) समाधान जो मुझे लगता है कि काफी अच्छा है, लेकिन इसे प्रतिस्पर्धी बनाने के लिए सूचियों को नीचे लाने की आवश्यकता है:

ssr/[;"uoiea%UOIEA%";"%uoiea%UOIEA"]

2

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

UT≔AUOIEAauoieaσF¹¹⊞υ➙§σ⊕ι§σι▷SR⟦Sυ

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

Naive विधि।

स्पष्टीकरण:

UT                                         Set trim option to on, so output won't be a rectangle
    ≔AUOIEAauoieaσ                          Assign "AUIOEAauioea" to s
                   F¹¹                      For i (ι) from 0 to 10
                       ⊞υ                   Push to u (initially empty list)
                          ➙                 Rule of:
                            §σ⊕ι            S[i + 1]
                                 §σι         to S[i]. This is so a->A gets overwriteen by a->e
                                    ▷SR⟦Sυ  Replace input as string using u (now a list of rules)

2

PHP , 76 बाइट्स।

$s=strtr($s,array_combine(str_split("aeiouAEIOU"),str_split("eiouaEIOUA")));

इसकी जांच - पड़ताल करें!

यह सबसे छोटा था जिसे मैं PHP में करने में सक्षम था।

$s = //overwrite $s variable ($s should be a defined string or input)
    strtr(  //strtr replaces key => value pairs from arrays in a string
        $s, //the string we are converting
        array_combine( //create an array with key value pairs, key should be original vowel letter and value should be it's replacement
            str_split("aeiouAEIOU") //turn vowels (lower and upper) into an array
            ,str_split("eiouaEIOUA") //turn vowel replacements into an array
        )
    );
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.