अंग्रेजी से कॉर्पस में अनुवाद करें


14

कोर्पस लोकप्रिय वीडियो गेम से एक काल्पनिक गुट हैं Warframe जो कुछ हद तक एक दिलचस्प भाषा है।

जबकि ग्राइनर जैसे खेल में अन्य गुटों ने अपनी भाषा के पीछे कुछ तर्क दिए हैं, कॉर्पस केवल अंग्रेजी भाषा का एक हानिपूर्ण प्रतिस्थापन है।

निम्नलिखित वर्णमाला मैपिंग को छोड़कर सभी कॉर्पस शब्द उनके अंग्रेजी समकक्षों के समान हैं:

अंग्रेजी से कॉर्पस मैपिंग

इसके कारण उच्चारण में कुछ समस्याएँ होती हैं:

yesबन जाता है yey
sayबन yay
yayजाता है yay
sassyबन yayyy
caseजाता हैyaye

यहाँ मैपिंग का एक पाठ संस्करण है:

a -> a
b -> t
c -> y
d -> p
e -> e
f -> t
g -> j
h -> k
i -> i
j -> t
k -> k
l -> p
m -> s
n -> t
o -> o
p -> k
q -> r
r -> t
s -> y
t -> p
u -> u
v -> t
w -> j
x -> k
y -> y
z -> b

चुनौती

अंग्रेजी वर्णमाला का उपयोग करके पाठ को देखते हुए, इसके कॉर्पस अनुवाद का उत्पादन करें।

उदाहरण के लिए, पाठ कॉर्पस में Hello, World!बन जाता Keppo, Jotpp!है

नियम

  • इनपुट में केवल ASCII प्रिंट करने योग्य अक्षर शामिल होंगे
  • इनपुट पाठ में व्हॉट्सएप और विराम चिह्न हो सकते हैं, इन्हें संरक्षित किया जाना चाहिए
  • अक्षरों का कैपिटलाइज़ेशन संरक्षित किया जाना चाहिए
  • यह स्वाभाविक रूप से है, सबसे कम बाइट्स जीतता है!

Testcases

परीक्षण मामलों को <===========>इनपुट और अपेक्षित आउटपुट के बीच एक रिक्त रेखा के साथ अलग किया जाता है

Hello, World!

Keppo, Jotpp!
<===========>
Yes

Yey
<===========>
TestcaSe

PeypyaYe
<===========>
Programming Puzzles and Code Golf

Ktojtassitj Kubbpey atp Yope Jopt
<===========>
This text has a
newline in it

Pkiy pekp kay a
tejpite it ip
<===========>
Corpus language best language

Yotkuy patjuaje teyp patjuaje
<===========>
Strip the flesh! Salt the wounds!

Yptik pke tpeyk! Yapp pke joutpy!
<===========>
"Install Warframe" they said, "It'll be fun" they said

"Itypapp Jatttase" pkey yaip, "Ip'pp te tut" pkey yaip
<===========>
What the **** did you just ****ing say about me, you little *****?
I'll have you know I graduated top of my class in the Navy Seals,
and I've been involved in numerous secret raids on Al-Quaeda,
and I have over 300 confirmed kills.

Jkap pke **** pip you tuyp ****itj yay atoup se, you pipppe *****?
I'pp kate you ktoj I jtapuapep pok ot sy ypayy it pke Taty Yeapy,
atp I'te teet ittoptep it tusetouy yeytep taipy ot Ap-Ruaepa,
atp I kate otet 300 yottitsep kippy.

द बोनस

यदि आप में से प्रत्येक में एक ऑडियो रिकॉर्डिंग (या ऑडियो के साथ वीडियो) शामिल है, तो आप प्रत्येक टेस्टकेस के कॉर्पस अनुवादों का उच्चारण करते हैं, तो आप अपने बाईटेकाउंट 1को एक इनाम के रूप में गुणा कर सकते हैं ।


@ शैगी ज़रूर, कंधों ने सोचा कि
स्काइड्सडेव

4
@RobertS। यह आपके स्कोर ( x * 1 == x) को कोई बोनस नहीं देता है । अनुवादों में से कई के
unpron Councilability

1
क्या आउटपुट वर्णों का एक सरणी हो सकता है?
एलपीड्रो

@ स्किड्सदेव "अनुवाद" उच्चारण योग्य हैं; मशीन लर्निंग और / या टेक्स्ट-टू-स्पीच प्रौद्योगिकियों का उपयोग करके या तो रिकॉर्ड की गई मानवीय आवाज़ या प्रोग्रामेटिक रूप से।
.१३१४

1
और इसलिए फिनिश भाषा का जन्म हुआ!
सर्गिओल

जवाबों:



4

05AB1E , 24 बाइट्स

ži.•ÜÁ©;«ìñä°ÔG·ÖYΘ•Du«‡

स्पष्टीकरण:

                       ‡   transliterate
ži                         a-zA-Z with
  .•ÜÁ©;«ìñä°ÔG·ÖYΘ•       atypetjkitkpstokrtyputjkyb
                    Du«    concatenated with itself, uppercased

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


मामूली 24 बाइट्स केवल व्यंजन का अनुवाद करके वैकल्पिक
केविन क्रूज़सेन

4

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

≔”$⌊∧T-¶I^F⁷ü@n⁹γ›7η”η⭆θ⎇№β↧ι§⎇№βι↧ηη⌕β↧ιι

इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है। स्पष्टीकरण:

≔                       Assign
 ”$⌊∧T-¶I^F⁷ü@n⁹γ›7η”  Compressed string `ATYPETJKITKPSTOKRTYPUTJKYB` 
                     η  To variable

 θ                      Input string
⭆                       Map over characters and join
  ⎇                     If
    β                   Lowercase alphabet
   №                    Contains
      ι                 Current character
     ↧                  Lowercased
                        (Then)
        ⎇               If
          β             Lowercase alphabet
         №              Contains
           ι            Current character
                        (Then)
             η          Variable
            ↧           Lowercased
                        (Else)
              η         Variable
       §                Indexed by
               ⌕        Index of
                  ι     Current character
                 ↧      Lowercased
                β       In lowercase alphabet
                        (Else)
                   ι    Current character
                        Implicitly print

4

टी-एसक्यूएल, 107 बाइट्स

SELECT TRANSLATE(v,'bcdfghjlmnpqrstvwxzBCDFGHJLMNPQRSTVWXZ',
                   'typtjktpstkrtyptjkbTYPTJKTPSTKRTYPTJKB')FROM t

लाइन ब्रेक और इंडेंट केवल पठनीयता के लिए हैं।

TRANSLATEचरित्र प्रतिस्थापन के लिए SQL 2017 फ़ंक्शन का उपयोग करता है ।

दुर्भाग्य से आवरण को बनाए रखने के लिए पूरी वर्णमाला को दो बार वहाँ रखना पड़ा । शायद बेहतर तरीके हैं, शायद कुछ ऐसा है जो एक समूह के रूप में टी को संभालता है , लेकिन यह मेरे लिए काम करता है।

इनपुट हमारे आईओ नियमों के अनुसार , पहले से मौजूद टेबल टी के साथ है, जो कि वर्चर कॉलम v के साथ है

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

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

3

जावास्क्रिप्ट (Node.js) , 100 बाइट्स

s=>s.replace(/[a-z]/gi,c=>(C='_atypetjkitkpstokrtyputjkyb'[Buffer(c)[0]&31],c>{}?C:C.toUpperCase()))

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

s =>                                  // s = input string
  s.replace(                          // replace in s ...
    /[a-z]/gi,                        // ... all letters, no matter the case
    c => (                            // for each letter c:
      C =                             //   pick a replacement letter C
        '_atypetjkitkpstokrtyputjkyb' //   from a 1-indexed lookup string
        [Buffer(c)[0] & 31],          //   using the 5 lowest bits of the ASCII code of c
      c > {} ?                        //   if the original letter was in lower case:
        C                             //     use the replacement letter as-is
      :                               //   else:
        C.toUpperCase()               //     convert it to upper case
    )                                 // 
  )                                   // end of replace()

3

आर , 79 बाइट्स

function(x)chartr("b-zB-Z",paste0(y<-"typetjkitkpstokrtyputjkyb",toupper(y)),x)

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

शाब्दिक रूप से केवल 3 बाइट्स कम टाइपिंग और अपरकेस प्रतिस्थापन दोनों टाइपिंग से कम ...

आर , 79 बाइट्स

function(x,`[`=chartr)"B-Z"[toupper(y),"b-z"[y<-"typetjkitkpstokrtyputjkyb",x]]

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

फैन्सी कोड, एक ही बाइट गिनती।




2

जे , 78 61 बाइट्स

FrownyFrog के लिए -17 बाइट्स धन्यवाद!

rplc(u:,98 66+/i.25);"0(,toupper)@'typetjkitkpstokrtyputjkyb'

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



@FrownyFrog धन्यवाद! मेरे J804 में मैं दाएं हाथ की ओर स्थिरांक का उपयोग नहीं कर सकता। मुझे अपग्रेड करने की आवश्यकता है :) मेरा समाधान अभी भी बदसूरत है ....
गालेन इवानोव

2

सी # (विजुअल सी # इंटरएक्टिव कंपाइलर) , 151 83 बाइट्स

n=>n.Select(a=>char.IsLetter(a)?(char)(" ATYPETJKITKPSTOKRTYPUTJKYB"[a%32]|a&32):a)

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

Pietu1998 के लिए धन्यवाद 68 बाइट्स की बचत!


आप रेंज को हटाकर, एस के संयोजन और आवरण के लिए बिटवाइज़ ऑपरेटरों का उपयोग करके इसे 83 बाइट्स तक प्राप्त कर सकते हैं Select
पुरकाकूदरी

धन्यवाद! बिट बुद्धिमान ऑपरेटरों के साथ अच्छी चाल!
अज्ञानता का अवतार

2

K (ngn / k) , 87 63 61 60 59 बाइट्स

f:{`c$x-a-@[!128;98+!25;:;0+"typetjkitkpstokrtyputjkyb"]a:_x}

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

{ } तर्क के साथ कार्य करें x

_ कम करना

a: को आवंटित a

!128 सूचि 0 1 2 ... 127

@[!128; सूचकांक ;:; मूल्यों ] पर तत्वों की जगह यह संशोधन सूचकांक दिया साथ मूल्यों

98+!25सूची 98 99 100 ... 122जो के लिए ascii कोड हैं "bcd...z"

juxtaposition अनुक्रमण है, इसलिए हम aसंशोधित सूची में सूचकांक के रूप में (पूर्णांकों में परिवर्तित) का उपयोग करते हैं

x-a-घटाना a, फिर घटाना रूप x; यह मूल स्ट्रिंग में ऊपरी / निचले हिस्से को पुनर्स्थापित करता है

`c$ वर्णों में बदलें


1

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

[a-z]
 $&
T`l`L
T`L`ATYP\ETJKITKPST\OKRTYPUTJKYB
T`L `l_` .

इसे ऑनलाइन आज़माएं! लिंक में परीक्षण के मामले शामिल हैं। स्पष्टीकरण:

[a-z]
 $&

प्रत्येक अक्षर के लिए एक गैर- ASCII वर्ण उपसर्ग करें। (मैंने एक नॉन-ब्रेकिंग स्पेस का उपयोग करने की कोशिश की, लेकिन फ़ायरफ़ॉक्स ने इसे कॉपी और पेस्ट करने के बाद वापस एक नियमित स्थान पर बदल दिया होगा।)

T`l`L

सभी पत्रों को ऊपर ले जाएं।

T`L`ATYP\ETJKITKPST\OKRTYPUTJKYB

पत्र को कॉर्पस में बदलें।

T`L `l_` .

गैर-एएससीआईआई चरित्र के बाद अक्षरों को कम करें और गैर-एएससीआईआई चरित्र को हटा दें।

Nave समाधान 63 बाइट्स है:

T`lL`aty\petjkitk\pst\okrty\putjkybATYP\ETJKITKPST\OKRTYPUTJKYB

इसे ऑनलाइन आज़माएं! लिंक में परीक्षण के मामले शामिल हैं।


1

अजगर 2 , 115 बाइट्स

lambda i:i.translate(''.join(a))
a=map(chr,range(256))
b='typetjkitkpstokrtyputjkyb'
a[66:91]=b.upper();a[98:123]=b

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

@ ElPedro के उत्तर से अनुकूलित। यह ऐरे में हर एस्की चरित्र के लिए प्रतिस्थापन उत्पन्न aकरता है और फिर उपयोग करता है str.translate

113 बाइट्स लाए जा सकते हैं यदि वर्णों का एक सरणी लौटना स्वीकार्य है:

lambda i:[a[ord(x)]for x in i]
a=map(chr,range(256))
b='typetjkitkpstokrtyputjkyb'
a[66:91]=b.upper();a[98:123]=b

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


रात के इस समय में कुछ सोच लिया कि यह कैसे कर रहा है। यह एक लंबा दिन था! अच्छा समाधान है।
एलपेड्रो

1

जेली , 29 बाइट्स

“qḍỊYl4ḃ©ƭṄxḳ½Dy’ṃⱮØA,Øa¤⁺żẎy

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


केवल व्यंजन को मैप करने की आवश्यकता है, इसलिए “ØṖ¦Mṗẏʋ@¥;}/’ṃⱮØCŒH¤⁺żẎy4. बचाता है ('y' से छुटकारा नहीं मिल सकता ØYक्योंकि यह मानचित्र के दाईं ओर है)
जोनाथन एलन

1

जाप , 37 बाइट्स

;®i`…ypetjkŠkp¡okrtyp©jkyb`pu)gCpu bZ

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

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

स्पष्टीकरण:

;                                        #Set C to the lowercase alphabet
 ®                                       #For each character Z of the input:
                                   bZ    # Find its index in:
                               C         #  The lowercase alphabet
                                pu       #  Plus the uppercase alphabet
                                         #  (-1 if it is not a letter)
                              g          # And get the character at that index in:
   `…ypetjkŠkp¡okrtyp©jkyb`              #  Get the lowercase Corpus alphabet
                           pu)           #  Plus the uppercase Corpus alphabet
  i                                      #  Add Z at the end (index -1)

0

पायथन 2 , 138 132 बाइट्स

def f(i,a='bcdfghjlmnpqrstvwxz',b='typtjktpstkrtyptjkb'):a+=a.upper();b+=b.upper();return''.join((x,b[a.find(x)])[x in a]for x in i)

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

वास्तव में एक मेमने के साथ की तुलना में एक नामित समारोह के साथ कम!

लैम्ब्डा संस्करण, 138 बाइट्स

lambda i,a='bcdfghjlmnpqrstvwxzBCDFGHJLMNPQRSTVWXZ',b='typtjktpstkrtyptjkbTYPTJKTPSTKRTYPTJKB':''.join((x,b[a.find(x)])[x in a]for x in i)

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

131 125 यदि हमें वर्णों को लौटाने की अनुमति है औरjoinसमारोहकेबाहर है।

def f(i,a='bcdfghjlmnpqrstvwxz',b='typtjktpstkrtyptjkb'):a+=a.upper();b+=b.upper();return[(x,b[a.find(x)])[x in a]for x in i]

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


1
आप अभी भी एक लंबोदर का उपयोग कर सकते हैं यदि आप बनाते हैं aऔर bवैश्विक चर
ब्लैक उल्लू काई

@BlackOwlKai - धन्यवाद। उस विचार के साथ खेल रहे हैं लेकिन देर हो रही है। शायद कल :)
ElPedro

इसे नीचे दिए गए 120/113 अक्षर ( टेस्टो के बिना TIO, अन्यथा लिंक एक टिप्पणी के लिए बहुत लंबा होगा)
ब्लैक उल्लू काई

मेरे लिए और अपने खुद के जवाब के रूप में पोस्ट करने के लिए पर्याप्त अलग धड़कता है। मैं ऊपर आऊँगा :)
ElPedro

बेझिझक मेरे परीक्षण के मामलों को भी चोरी करें। कोड की तुलना में उन्हें टाइप करने में अधिक समय लगा ...
ElPedro

0

PHP , 100 बाइट्स

कोड

<?=strtr($argv[0],($u=bcdfghjklmnpqrstvwxyz).($f=strtoupper)($u),($v=typtjktkpstkrtyptjkyb).$f($v));

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

व्याख्या

# using the provided character mapping given on the question, as an array
strtr($argv[0],                                  # strtr for the string replacement
($u=bcdfghjklmnpqrstvwxyz).($f=strtoupper)($u),  # Taking onthe the keys for the first string
($v=typtjktkpstkrtyptjkyb).$f($v));              # Using the values for second string
 # In both Strings appending the upper version of each string.

0

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

XQ.*m+r1dd[tG."byàHuH¯¹e?rJyfh

कोशिश करो!

शायद दो डी से छुटकारा पाने के लिए वाम मानचित्र या कुछ का उपयोग कर सकता है, लेकिन मैं यह पता नहीं लगा सका कि कैसे।



0

पायथ, 34 वर्ण

जे "byàHuH¯¹e? RJyfh" XXztGJrtG1rJ1

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

स्ट्रिंग "typetjkitkpstokrtyputjkyb" का एक संकुचित संस्करण है । किसी कारण से मैं समारोह के साथ "atypetjkitkpstokrtyputjkyb" को संपीड़ित नहीं कर पा रहा हूं

+++ \। एन ++ hSzeSzCi-RChSzCMz-hCeSzChSzN
हालांकि यह शायद एक बाइट या दो को बचाएगा क्योंकि दो टी को समाप्त किया जा सकता है।



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