ইংরেজি থেকে এলিয়েন অনুবাদক


18

সারসংক্ষেপ

এলিয়েনরা পৃথিবীতে স্থির হয়েছে এবং আশ্চর্যের সাথে যথেষ্ট, তাদের বর্ণমালা হুবহু আমাদের মতো। তাদের ভাষাও আমাদের সাথে খুব আলাদা কিছু পৃথক এবং সহজে গণনা করার মত পার্থক্যগুলির সাথে মিল রয়েছে।

চ্যালেঞ্জ

একটি স্ট্রিং নিন এবং ভিনগ্রহের ভাষার সমতুল্য আউটপুট নিন। অনুবাদ যেমন কাজ করে:

শব্দের সাথে সমস্ত স্বরটি সংশ্লিষ্ট শব্দটির সাথে অদলবদল করুন:

  Vowel |   With
--------+--------
   a    |   obo
   e    |   unu
   i    |   ini
   o    |   api
   u    |   iki

আপনি এলিয়েন-> ইংরেজী অনুবাদ করতে অন্য অনুবাদকও লিখতে পারেন, তবে এটি optionচ্ছিক।

উদাহরণ

Input: Shaun
Output: Shoboikin

Input: Java
Output: Jobovobo

Input: Hello, World!
Output: Hunullapi, Wapirld!

স্বর যদি মূলধন হয় তবে আপনি প্রথম অক্ষরটি মূলধন করুন ..

Input: Alan
Output: Obolobon

Input: Australia
Output: Oboikistroboliniobo

বিধি

  • স্ট্যান্ডার্ড লুফোলস প্রয়োগ হয়
  • নতুন লাইন থাকা পাঠ্যের জন্য অবশ্যই কাজ করা উচিত
  • আপনি হয় কোনও ফাংশন, ল্যাম্বদা বা সম্পূর্ণ প্রোগ্রাম লিখতে পারেন

    ক্যাপিংরোবোটিকিলোবোটিনিয়াপিনস আপন কব্জি আঁকানো থুনু রুনুভুনুরসুনু ট্রোবোনস্লোবোটাপির!


আমি নিশ্চিত না আপনি এলিয়েন-> ইংরেজী অনুবাদ করার জন্য অন্য অনুবাদক কী লিখতে পারেন । আমরা কি নিয়মিতটির পরিবর্তে বিপরীত অনুবাদক লিখতে পারি?
ডেনিস

4
সম্ভবত এটি কেবল আমি, তবে এটি আমার কাছে স্পষ্ট নয় যে এখানেও এই অর্থ বহন করে। যাইহোক, আমি নিশ্চিত নই যদি এটি আসল কাজের অংশ না হয় তবে এটি কীভাবে নিয়ম
ডেনিস

@ ডেনিস আপনি কিছুটা পুডোবন্টিনিক হচ্ছেন, তবে এটি পরিষ্কার করার জন্য আমি এটি সম্পাদনা করেছি।
শন ওয়াইল্ড

2
নতুন লাইনের প্রয়োজন কেন? আমার মতে, এটি অপ্রয়োজনীয় এবং চ্যালেঞ্জের মূল পয়েন্টটিতে কিছু যুক্ত করে না।
আদনান

1
ইনপুটটিতে কোনও এএসসিআইআই অক্ষর বা কেবল একটি উপসেট থাকতে পারে। উদাহরণস্বরূপ, ইনপুটটিতে কি কখনও সংখ্যা থাকবে?
রিলে

উত্তর:



12

টিআই-বেসিক, 173 + 59 + 148 = 380 বাইট

আশা করি এলিয়েনরা টিআই -৩ 83 / ৮৪ ক্যালকুলেটর ব্যবহার করবেন;)

প্রধান প্রোগ্রাম, 173 বাইট

বোনাস: আপনার স্বাভাবিক বা বিপরীত অনুবাদক চান কিনা তার উপর নির্ভর করে দ্বিতীয় বা তৃতীয় লাইন রাখুন।

"("+Ans+")→Str1
"@a~obo@A~Obo@e~unu@E~Unu@i~ini@I~Ini@o~api@O~Api@u~iki@U~Iki@→Str2    <-- English to Alien
"@obo~a@Obo~A@unu~e@Unu~E@ini~i@Ini~I@api~o@Api~O@iki~u@Iki~U@→Str2    <-- Alien to English
For(I,2,length(Ans
If "@"=sub(Str2,I-1,1
Then
Str1+"~"+sub(Str2,I,inString(Str2,"@",I)-I
prgmQ
Ans→Str1
End
End

সাবপ্রগ্রাম ( prgmQ), 59 বাইট:

Ans→Str9
inString(Ans,"~
sub(Str9,Ans,length(Str9)-Ans+1→Str8
Str9
prgmR
Repeat Str9=Ans+Str8
Ans+Str8→Str9
prgmR
End

সাবপ্রগ্রাম ( prgmR), 148 বাইট:

Ans→Str0
inString(Ans,"~→Z
inString(Str0,"~",Ans+1→Y
inString(sub(Str0,1,Z-1),sub(Str0,Z+1,Ans-Z-1→X
sub(Str0,1,-1+inString(Str0,"~
If X
sub(Str0,1,X-1)+sub(Str0,Y+1,length(Str0)-Y)+sub(Str0,X+length(sub(Str0,Z+1,Y-Z-1)),Z-X-length(sub(Str0,Z+1,Y-Z-1

পিএস ~টোকেনকে উপস্থাপন করে 0x81এবং টোকেনকে @উপস্থাপন করে 0x7F, এখানে আরও শিখুন ।

কেন এই প্রোগ্রামের একটি উচ্চ বাইট গণনা আছে PPS পার্ট কারণ sub(, inString(, length(, এবং সমস্ত ছোট হাতের অক্ষর দুই প্রতিটি বাইট হয় ...


আমি মনে করি আপনি একবার মিশ্রিত হয়ে গেছেন prgmRএবং prgmQআপনার কোড শিরোনামে একবার?
বাইট কমান্ডার

হ্যাঁ, @ বিটকম্যান্ডার ধরার জন্য ধন্যবাদ :)
টিমটেক

8

পার্ল, 56 বাইট

এর জন্য +1 অন্তর্ভুক্ত -p

STDIN এ ইনপুট দিন

alien.pl:

#!/usr/bin/perl -p
s%\w%"`"&$&|("A\x0fboE\x15nuI\x09niO\x01piU\x09ki"=~/\u$&\K.../,$&)%eg

প্রদর্শিত হিসাবে কাজ করে, তবে \xXXদাবি করা স্কোর পাওয়ার জন্য আসল চরিত্রের দ্বারা পালিয়ে যাওয়াগুলি প্রতিস্থাপন করে


1
+1 কেবলমাত্র এলিয়েন অবতারের জন্য উত্সাহিত। শুধু মজা করছি, সমাধানটিও দুর্দান্ত।
বিশৃঙ্খলা

1
যীশু খ্রিস্ট .. পার্ল এর সেরা, মহিলা এবং জেন্টস এ।
প্রিয়দু নিমরে

6

সেড 89

s,a,&b\n,gi
s,i,&n\r,gi
s,o,&p\r,gi
s,u,&k\r,gi
s,e,&n\f,gi
y,aeouAEOU\n\r\f,ouaiOUAIoiu,

এই ইনপুট যে নতুনলাইন আছে জন্য কাজ করে?
জর্দান

@ জর্ডান এটি করে। সেড "একবারে একটি লাইন" পড়ে। সুতরাং এটি প্রথম নিউলাইন পর্যন্ত সমস্ত কিছু প্রক্রিয়া করবে, মুদ্রণ করবে, একটি নতুন লাইন প্রিন্ট করবে, তারপরে আরও পাঠ্য আছে কিনা তা শুরু করুন।
রিলে

আহ, অবশ্যই 👍🏻
জর্ডান

@ জর্ডান এটি নিয়ম ছিল না যখন আমি এটি লিখেছিলাম, তবে এটি যাইহোক কাজ করে শেষ হয়েছিল।
রিলে

6

পাইথন, 99 95 93 বাইট

lambda s:"".join(("ouiaiOUIAI bnnpkbnnpk ouiiiouiii"+c)["aeiouAEIOU".find(c)::11] for c in s)

আইডিয়োন.কম এ ...

বেশ সহজ. স্বর তালিকার প্রতিটি অক্ষরকে আমরা কেবল সূচকটি সন্ধান করি এবং আমাদের প্রয়োজনীয় তিনটি অক্ষর টানতে এটি ব্যবহার করুন। যদি এটি পাওয়া না যায়, কেবল স্ট্রিংয়ের শেষে বর্তমান অক্ষরটি আটকে দেয় .find()returns -1স্পেসগুলি প্রয়োজনীয় তাই কোনও অক্ষর যুক্ত "a"হওয়া অন্তর্ভুক্ত করে না c। অনুবাদিত স্বরগুলি বর্ণের আদেশ অনুসারে দলবদ্ধ করা হয় (প্রতিটি অনুবাদের প্রথম অক্ষর, তারপরে দ্বিতীয়, তৃতীয়)।


বাহ, চমৎকার সৃজনশীল পদ্ধতির। আমি মুগ্ধ :)
বাইট কমান্ডার

1
আপনি স্থানটি সরিয়ে ফেলতে পারেন["aeiouAEIOU".find(c)::11] for
এপ্রিলিথ

6

05 এ বি 1 ই , 28 27 20 বাইট

žÀ.•₅%~≠#ùÛãú•3ôD™«‡

এটি অনলাইন চেষ্টা করুন!

Unuxplobonobotiniapin

žÀ                    # the string "aeiouAEIOU"
  .•₅%~≠#ùÛãú•        # the string "obounuiniapiiki"
              3ô      # split in pieces of 3
                D™«   # concatenate with a title-case copy
                   ‡  # transliterate

2
আইপি লাপিভুনু ফাঁকফোকর!
শান ওয়াইল্ড

@ বাসালি অ্যালান টিউরিং: আমার মাথায় এটি অনুবাদ করতে আমাকে অনেক দীর্ঘ সময় নিয়েছে। আমি মনে করি আমার একটি বিপরীত অনুবাদক দরকার: পি
এমিগানা

2
এটির জন্য যান, খুব বেশি শক্ত হওয়া উচিত নয়: পি
শন ওয়াইল্ড

ভীতিজনক, আমার মনে হয় এটি বলছে আমি গল্ফকে ভালবাসি।
ডেটাগোড

আমি আমার প্রশ্ন পরিবর্তন করেছি যা আপনাকে উত্তর অবৈধ করে তোলে। এটি অবশ্যই নতুন লাইনগুলির সাথে কাজ করবে
শন ওয়াইল্ড


5

পাইথন, 129 বাইট

lambda s:"".join([str,str.capitalize][ord(l)<91]({"a":"obo","e":"unu","i":"ini","o":"api","u":"iki"}.get(l.lower(),l))for l in s)

এটি আদর্শের.কম এ চলমান দেখুন

এখানে আরও সুন্দর বিন্যাসিত সংস্করণ রয়েছে:

lambda s: \
    "".join(
        [str, str.capitalize][ord(l) < 91](
            {"a":"obo", "e":"unu", "i":"ini", "o":"api", "u":"iki"}
            .get(l.lower(), l)
        )
    for l in s)

সর্বাধিক আকর্ষণীয় অংশগুলি হ'ল যা অভিধানে লোয়ার কেসে রূপান্তরিত { ... }.get(l.lower(), l)সঞ্চিত চিঠিটি অনুসন্ধান করার চেষ্টা করে lএবং হয় অনূদিত সংস্করণটি (যদি পাওয়া যায়), না হয় মূল চিঠিটি দেয়
এবং [str, str.capitalize][ord(l) < 91]( ... )যা মূল চিঠিটি মূলধন পত্র ছিল কিনা তা যাচাই করে ( এএসসিআইআই কোড পয়েন্ট ৯১ এর চেয়ে কম) এবং তারপরে হয় str()চিঠিটি দিয়ে ফাংশনটিকে আর্গুমেন্ট হিসাবে ডাকে (যদি এটি মূলধন বর্ণ না হয়, কিছুই করে না) বা str.capitalize()ফাংশন (আর্গুমেন্টের স্ট্রিংয়ের প্রথম অক্ষরটিকে আপার ক্ষেত্রে রূপান্তর করে)।


5

সি (জিসিসি) , 150 141 136 134 বাইট

a;i;e(char*n){for(char*v=" AEIOUIAI",*t;i=*n++;printf(&a))t=index(v,i-i/96*32),a=t?t-v:0,a=a?v[a+3]|L" 潢畮楮楰楫"[a]<<8|i&32:i;}

এটি অনলাইন চেষ্টা করুন!

@ অ্যালগমিরের উত্তরের ভিত্তিতে এবং -8 কেবলমাত্র ASCII- এর জন্য ধন্যবাদ

কম গল্ফ সংস্করণ

a;i;
e(char*n){
  for(char*v=" AEIOUIAI",*t;i=*n++;printf(&a))
    t=index(v,i-i/96*32),
    a=t?t-v:0,
    a=a?v[a+3]|L" 潢畮楮楰楫"[a]<<8|i&32:i;
}

149? a;l;i;e(char*n){for(char*v=" AEIOU",*t;i=*n++;printf("%c%c%c"+4*!a,(a?" OUIAI"[a]:i)|i&32," bnnpk"[a]," ouiii"[t=index(v,i-32*l),a=t?t-v:0]))l=i>96;}
ASCII- কেবল

হতে পারে 149:a;l;i;e(char*n){for(char*v="AEIOU",*t;i=*n++;printf("%c%c%c"+4*!a,(a?" OUIAI"[a]:i)|i&32," bnnpk"[a]," ouiii"[t=index(v,i&95),a=t&&t-v<5?t-v+1:0]));}
ASCII- কেবল

144:a;l;i;e(char*n){for(char*v=" AEIOU",*t;i=*n++;)printf("%c%c%c"+4*!a,a?" OUIAI"[a]|i&32:i," bnnpk"[a]," ouiii"[t=index(v,i-i/96*32),a=t?t-v:0]);}
ASCII- কেবল

4

ব্যাচ, 215 বাইট

@echo off
set/pt=
set s=
:l
if "%t%"=="" echo(%s%&exit/b
set c=%t:~0,1%
for %%a in (obo.a unu.e ini.i api.o iki.u Obo.A Unu.E Ini.I Api.O Iki.U)do if .%c%==%%~xa set c=%%~na
set s=%s%%c%
set t=%t:~1%
goto l

STDIN এ ইনপুট নেয়। চরিত্র দ্বারা অক্ষর প্রক্রিয়াকরণ ক্ষেত্রে সংবেদনশীল হওয়ার সুবিধা রয়েছে।


ব্যাচ সবকিছুর জন্য সবচেয়ে খারাপ হাতিয়ার, তাই না? (ভাল, কমপক্ষে আপনি টিআই-বেসিককে পরাজিত করেছেন) ব্যাকের কোনও কোডগল্ফ দেখে ভাল লাগছে!
YoYoYonnY

4

পাইথ, 42 বাইট

#sXw"aeiouAEIOU"+Jc"obounuiniapiiki"3mrd3J

একটি প্রোগ্রাম যা STDIN এ ইনপুট নেয় এবং আউটপুট প্রিন্ট করে।

এটি অনলাইনে চেষ্টা করুন

কিভাবে এটা কাজ করে

#sXw"aeiouAEIOU"+Jc"obounuiniapiiki"3mrd3J  Program.
#                                           Loop until error statement:
   w                                         Get w, the next line of the input
                   "obounuiniapiiki"         Yield string literal "obounuiniapiiki"
                  c                 3        Split that into groups of three characters
                 J                           Assign that to J and yield J
                                     mrd3J   Map title case over J
                +                            Merge the lower and title groups
    "aeiouAEIOU"                             Yield string literal "aeiouAEIOU"
  X                                          Translate w from that to the three-character
                                             groups
 s                                           Concatenate that
                                             Implicitly print

4

সি, 167 বাইট

সি কোড করার সময় আমি সর্বদা প্রধান কাজগুলি করার অভ্যাসটি ভাঙতে চাইনি, তবে এটি একটি প্রধান সহ সংস্করণটির চেয়ে যথেষ্ট সংক্ষিপ্ত এবং এইভাবে আমি যা চেয়েছিলাম তা বানানের জন্য আমি আরও একটি চিঠি পেয়েছি!

Golfed

a;l;i;e(char*n){for(;i=*n++;l=i>90,i-=32*l,a=!(i-65)+2*!(i-69)+3*!(i-73)+4*!(i-79)+5*!(i-85),printf(a?"%c%c%c":"%c",(a?"HOUIAI"[a]:i)+l*32,"ibnnpk"[a],"!ouiii"[a]));}

মন্তব্য

a;l;i;
e(char*n)
{
    for(;
        i = *n++;  /* Get char and advance */
        l = i>90,  /* Is lowercase? */
        i -= 32*l, /* Make uppercase */

        /* Is 1,2,3,4,5 depeding on the vowel and 0 for no vowel */
        a = !(i-65) + 2*!(i-69) + 3*!(i-73) + 4*!(i-79) + 5*!(i-85),

        printf(a?"%c%c%c":"%c",        /* Print 1 or 3 chars? */
               (a?"HOUIAI"[a]:i)+l*32, /* Print appropriate char+case */
                  "ibnnpk"[a],            /* Print appropriate char */
                  "!ouiii"[a]));          /* Print appropriate char */
}

সি সম্পর্কে বিশেষ কিছু রয়েছে এবং আপনি পয়েন্টার এবং এ জাতীয়গুলির সাথে কতটা ভয়ঙ্কর হতে পারেন।



@ সেলিংক্যাট আমি আপনার উত্তরটি নিজের পোস্ট করে বলব। এটি নিজের উত্তর প্রাপ্য করার জন্য যথেষ্ট পরিমাণে সরিয়ে নিয়েছে। :)
অ্যালগমির


3

জাভাস্ক্রিপ্ট (ES6), 94 93 92 বাইট

s=>s.replace(/[aeiou]/gi,c=>"OUIAIouiai"[n="AEIOUaeiou".search(c)]+"bnnpk"[n%=5]+"ouiii"[n])

এডসি 65 এর 1 টি বাইট ধন্যবাদ সংরক্ষিত হয়েছে নীলকে
1 টি বাইট ধন্যবাদ

ডেমো

let f =
s=>s.replace(/[aeiou]/gi,c=>"OUIAIouiai"[n="AEIOUaeiou".search(c)]+"bnnpk"[n%=5]+"ouiii"[n])

function translate() {
  document.getElementById("o").value = f(document.getElementById("i").value);
}
translate();
<input id="i" size=80 oninput="translate()" value="Hello, World!"><br><input id="o" size=80 disabled>


1
এর পরিবর্তিত মানটি পরীক্ষা করতে .indexOfএবং এর পরিবর্তে .searchব্যবহার ~করুন<0
edc65

1
আমি কেবলমাত্র স্বর প্রতিস্থাপন করলে কী হবে তা দেখার জন্য আমি তাকিয়েছিলাম এবং আমি মূলত পেয়েছিলাম s=>s.replace(/[aeiou]/gi,c=>"ouiaiOUIAI"[n="aeiouAEIOU".indexOf(c)]+"bnnpk"[n%=5]+"ouiii"[n])যা এখনও 93 বাইট রয়েছে। তবে যেহেতু cএখন স্বর হিসাবে পরিচিত এখন আপনি একটি বাইট সংরক্ষণ করার searchপরিবর্তে ব্যবহার করতে পারেন indexOf!
নিল

@ নিল - ভাল লাগল! আমি উভয়ই চেষ্টা করেছি, তবে তাদের সংমিশ্রনের কথা ভাবি নি।
আর্নাউল্ড

2

জাভা 8, 172 বাইট

String f(String s){String v="AEIOUaeiou",r="OboUnuIniApiIkiobounuiniapiiki",o="";for(char c:s.toCharArray()){int n=v.indexOf(c);o+=n>-1?r.substring(n*3,n*3+3):c;}return o;}

ungolfed:

String f(String s){
    String v="AEIOUaeiou",r="OboUnuIniApiIkiobounuiniapiiki",o="";
    for(char c:s.toCharArray()){
        int n=v.indexOf(c);
        o+=n>-1?r.substring(n*3,n*3+3):c;
    }
    return o;
}

এবং এলিয়েন ইংরাজীতে ফিরেছেন (171 বাইট):

String g(String s){String[] v="AEIOUaeiou".split(""),r="Obo Unu Ini Api Iki obo unu ini api iki".split(" ");for(int i=0;i<v.length;i++)s=s.replaceAll(r[i],v[i]);return s;}

Ungolfed:

String g(String s){
    String[] v="AEIOUaeiou".split(""),r="Obo Unu Ini Api Iki obo unu ini api iki".split(" ");
    for(int i=0;i<v.length;i++)s=s.replaceAll(r[i],v[i]);
    return s;
}


2

গণিত, 128 বাইট

#~StringReplace~{"a"->"obo","A"->"Obo","e"->"unu","E"->"Unu","i"->"ini","I"->"Ini","o"->"api","O"->"Api","u"->"iki","U"->"Iki"}&

IgnoreCase->Trueকেস চেকের সাথে একত্রে ব্যবহার করে একটি সংক্ষিপ্ত প্রোগ্রাম পাওয়া যাবে কিনা তা নিশ্চিত নয় ।


2

সি 178 বাইট

char*p[256],*a="obo\0unu\0ini\0api\0iki\0Obo\0Unu\0Ini\0Api\0Iki",*b="aeiouAEIOU";main(c){for(c=0;b[c];++c)p[b[c]]=a+4*c;for(;(c=getchar())>0;)p[c]?printf("%s",p[c]):putchar(c);}


@ সাইলিংক্যাট এবং সি ঠিক হতে পারে যদি এটি সংখ্যা বাইট 1 বাইট 2 বাইট 3 হিসাবে সংরক্ষণ করে ... উদাহরণস্বরূপ 255 মেমরিতে ff 00 00 00 হিসাবে থাকে তবে 255 এর জন্য অন্য এন্ডিয়ান যদি আমাদের থাকে 00 00 00 ff এবং শূন্য স্ট্রিং মুদ্রণ করে ...
রোজলুপ


2

সি #, 133 121 বাইট

s=>{int i;return string.Concat(s.Select(c=>(i ="AIUEOaiueo".IndexOf(c))>-1?"OboIniIkiUnuApioboiniikiunuapi".Substring(i*3,3):c+""));}

সম্পাদনা করুন (ধন্যবাদ milk)

আপনাকে ধন্যবাদ :) আমি আসলে এই ওভারলোডটি জানি কিন্তু এটি লেখার সময় কোনওভাবে এটি সম্পূর্ণরূপে ভুলে গিয়েছিলাম ..

s=>string.Concat(s.Select((c,i)=>(i="AIUEOaiueo".IndexOf(c))>-1?"OboIniIkiUnuApioboiniikiunuapi".Substring(i*3,3):c+""));

আপনি Select(char, int)ওভারলোডটি ব্যবহার করতে পারেন যাতে আপনাকে ঘোষণার দরকার হয় না এবং এগুলি iসমস্ত এক লাইনে রেখে দিতে পারেন। s=>string.Concat(s.Select((c,i)=>(i="AIUEOaiueo".IndexOf(c))>-1?"OboIniIkiUnuApioboiniikiunuapi".Substring(i*3,3):c+""));
দুধ

2

সি, 207 202 বাইট (সাইওসকে ধন্যবাদ)

#include <stdio.h>
#define r(c,t) case c:printf(t);continue;
int main(){int c;while(~(c=getchar())){switch(c){r('a',"obo")r('e',"unu")r('i',"ini")r('o',"api")r('u',"iki")default:putchar(c);}}return 0;}

1) আমি কোনও ধরণের ঘোষণার আগে টাইপ বাদ দিতে ঘৃণা করি

2) আমি অবাস্তব কোড (প্রধান () ফাংশন ছাড়াই) লাগাতে পছন্দ করি না

ব্যবহার:

c89 cg.c -o cg; echo "Testing" | ./cg

পিপিসিজিতে আপনাকে স্বাগতম!
মার্টিন ইন্ডার

@ মার্টিনেন্দর, এটি অপ্রত্যাশিত ... তবে আপনাকে ধন্যবাদ :)
এক্সডিভেলনেট

(c=getchar())!= EOFহয়ে উঠতে পারে~(c=getchar())
Cyoce


1

সুইফট 2.2 196 বাইট

¯ \: _ (ツ): _ / ¯

Golfed

var r = ["a":"obo","e":"unu","i":"ini","o":"api","u":"iki"];var q={(s:String) in var o = "";for var i in s.lowercaseString.characters{o += r[String(i)] != nil ? r[String(i)]!:String(i)};print(o);}

unGolfed

var r = ["a":"obo","e":"unu","i":"ini","o":"api","u":"iki"]
var q={(s:String) in
    var o = ""
    for var i in s.lowercaseString.characters {
        o += r[String(i)] != nil ? r[String(i)]!:String(i)
    }
    print(o)
}

স্থানগুলি var r = [প্রয়োজনীয়?
সাইয়েস

হ্যাঁ খেলার মাঠের অ্যাপ্লিকেশনটিতে যদি আপনি কোনও অ্যাসাইনমেন্টের মধ্যে স্থান না রাখেন এটি আপনাকে ত্রুটি দেয় এবং স্পেস যোগ করতে বলে। সুইফটি সম্ভবত গল্ফের নিকৃষ্টতম ভাষাগুলির মধ্যে একটি তবে আমি ভেবেছিলাম এটি মজাদার হবে।
ডানওয়াকিম

এবং এটি আকর্ষণীয় ছিল যখন আমি যখন কোনও বন্ধকে একটি ভেরিয়েবল নির্ধারণ করছিলাম তখন এটি আমাকে ত্রুটি দেয় নি। অতএব
সঙ্কুচিত

হ্যাঁ আমি এটাও লক্ষ্য করেছি। এ কারণেই আমি বিভ্রান্ত হয়ে পড়েছিলাম।
সাইয়েস

0

পার্ল 6 ,  84  82 বাইট

{my%o=<a obo e unu i ini o api u iki>;S:i:g[<{%o.keys}>]=%o{$/.lc}.samecase($/~'a')}
{my%o=<a obo e unu i ini o api u iki>;S:i:g[<[aeiou]>]=%o{$/.lc}.samecase($/~'a')}

সম্প্রসারিত:

# bare block lambda with implicit parameter 「$_」
{
  # create the mapping
  my %v = <a obo e unu i ini o api u iki>;

  # replace vowels in 「$_」
  S
    :ignorecase
    :global
  [
    <[aeiou]>
  ]

  = # replace them with:

  %v{ $/.lc }
  # change it to be the same case as what was matched, and a lowercase letter
  .samecase( $/ ~ 'a' )
}

ব্যবহার:

my &english-to-alien = {my%o=<a obo e unu i ini o api u iki>;S:i:g[<[aeiou]>]=%o{$/.lc}.samecase($/~'a')}

say english-to-alien 'Australia'; # Oboikistroboliniobo

0

সি - 192 বাইট

(স্পষ্টতার জন্য নতুন লাইন যুক্ত হয়েছে)

int c,j,b;main(){
char*f[]={"bo","nu","ni","pi","ki",""},
s[]={14,16,0,-14,-12};
while(c=getchar()){for(b=j=0;j<10;++j)
{if(c=="aeiouAEIOU"[j]){c+=s[j%=5];b=1;break;}}
printf("%c%s",c,f[b?j:5]);}}

সারণী এবং একটি বুলিয়ান স্যুইচ সন্ধান করুন।

স্বরগুলির টেবিলের (স্ট্রিং) প্রতিটি অক্ষর সন্ধান করুন; যদি পাওয়া যায়, তবে সারণির নিয়ম অনুসারে এটি সংশোধন করুন s। প্রতিটি অক্ষর একটি স্ট্রিং পরে মুদ্রণ করুন: একটি স্বর পাওয়া গেলে, sটেবিলের মধ্যে বাক্য অক্ষরের বাকী অক্ষরটি অনুসরণ করে মান দ্বারা পরিবর্তিত অক্ষরটি মুদ্রণ করুন f; যদি স্বর না পাওয়া যায় তবে মূল চরিত্রটি এবং একটি খালি স্ট্রিং মুদ্রণ করুন।



0

রুবি, 102 93 91 88 78 বাইট

gsub(/[#{b='aeiouAEIOU'}]/){'obounuiniapiikiOboUnuIniApiIki'[b.index($&)*3,3]}

ব্যাখ্যা:

ruby -pe "gsub(/[#{b='aeiouAEIOU'}]/){'obounuiniapiikiOboUnuIniApiIki'[b.index($&)*3,3]}"পরের প্রকারের মতো লাইনটি কার্যকর করুন , উদাহরণস্বরূপ,Australia এটি আউটপুট করা উচিত:Oboikistroboliniobo

এটি বেশ সহজবোধ্য, অনুবাদ স্ট্রিংয়ের (বি), বার 3 এবং পরবর্তী 3 টি অক্ষরের প্রতিস্থাপিত হওয়া স্বর সূচকের উপর ভিত্তি করে সমস্ত স্বরগুলি একটি স্ট্রিংয়ের সাথে প্রতিস্থাপন করুন।


1
আমি সন্দেহ করি আউটপুটে নেতৃস্থানীয় এবং পিছনের উদ্ধৃতি চিহ্নগুলি (এবং যদি ইনপুটটির উদ্ধৃতি চিহ্ন থাকে তবে অভ্যন্তরীণ পলায়ন) এটি অযোগ্য করে দিতে পারে। যাইহোক, আপনি অ্যাসাইনমেন্টটি bরেজিপ্যাক্সে স্থানান্তর করে দুটি বাইট সংরক্ষণ করতে পারেন ( /[#{b=...}/)।
জর্ডান

1
আমি মনে করি স্থানটি p $*অপ্রয়োজনীয়
সাইয়েস

1
-pঅতিরিক্ত বাইট সংরক্ষণ করতে পতাকা ব্যবহার করুন । ruby -pe 'gsub(/[#{b="aeiouAEIOU"}]/){"obounuiniapiikiOboUnuIniApiIki"[b.index($&)*3,3]}'
মান কালি

আমি 78 + 2 ( -pe) গণনা করছি । আপনি কিভাবে 71 পাবেন?
চার্লস

এই ঘটনায় মৃত্যুদণ্ড কার্যকর করার জন্য প্রয়োজনীয় চরিত্রগুলি কি নোটট্যাচারলসকে বোঝায়? আমি শুধু তাদের গণনা করি নি।
সাইকেল

0

টিআইবি-বেসিক, 201 197 195 বাইট

Ans+" →Str1:"AEIOUaeiou→Str2:"OUIAIouiai→Str3:"bonunipiki→Str4:1→X:While X<length(Str1:inString(Str2,sub(Str1,X,1→A:5fPart(.2A→B:If A:sub(Str1,1,X-1)+sub(Str3,A,1)+sub(Str4,2B-1,2)+sub(Str1,X+1,length(Str1)-X→Str1:X+1+2(A>0→X:End:sub(Str1,1,length(Str1)-1

ভাবতে ভাবতে আমি এখানে আরও একটি টিআই-বেসিক উত্তর পেয়েছি!

যাই হোক, ইনপুটে একটি ইংরেজি স্ট্রিং Ans
আউটপুটটি অনুবাদকৃত স্ট্রিং।

উদাহরণ:

"HE
HE
prgmCDGF1A
HUnu
"Hello
Hello
prgmCDGF1A
Hunullapi

ব্যাখ্যা:
(পাঠযোগ্যতার জন্য নিউলাইনগুলি যুক্ত হয়েছে :following একই লাইন থেকে একাধিক লাইন নিম্নলিখিত কোড ব্লকের সাথে চিহ্নিত করা হবে ))

Ans+" →Str1                     ;append a space to the input string and store the result
                                ; in "Str1"
"AEIOUaeiou→Str2                ;store the upper- and lowercase vowels in "Str2"
"OUIAIouiai→Str3                ;store the beginning letter of each corresponding translated
                                ; vowel in "Str3"
"bonunipiki→Str4                ;store the remaining letters of each translated vowel
                                ; in "Str4"
1→X                             ;store 1 in "X"
While X<length(Str1             ;loop until all English letters have been checked
inString(Str2,sub(Str1,X,1→A    ;get the current letter and store its index in "Str2"
                                ; into "A"
5fPart(.2A→B                    ;get which translated vowel end should be used
                                ; B ranges from 1 to 5
If A                            ;if the current letter is a vowel
sub(Str1,1,X-1)                 ;extract the substring of the input before the
                                ; current letter
: +sub(Str3,A,1)                ;append the translated vowel start
: +sub(Str4,2B-1,2)             ;append the translated vowel end
: +sub(Str1,X+1,length(Str1)-X  ;append the remaining substring of the input
: →Str1                         ;store the result of these concatenations into "Str1"
X+1+2(A>0→X                     ;check if A>0 (if the current letter was a vowel)
                                ; if true, increment "X" by three
                                ; if false, increment "X" by one
End
sub(Str1,1,length(Str1)-1       ;remove the trailing space and store the result in "Ans"
                                ;implicit print of "Ans"

মন্তব্য:

  • টিআই-বেসিক একটি টোকেনাইজড ভাষা। চরিত্র গণনা করেবাইট গণনা সমান না

  • টিআই-বেসিকের ছোট হাতের অক্ষর দুটি করে বাইট হয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.