ব্লিটে ব্লিলেট ব্লিটে!


18

(অর্থ: ইংলিশকে ব্লিটে রূপান্তর করুন)

আমরা বছরের পর বছর ধরে ছাগলকে godশ্বর হিসাবে প্রশংসা করেছি।

তবে আমরা যদি ছাগল God'sশ্বরের ভাষা 'ব্লিট' তে ইংরেজী অনুবাদ করতে না পারি, আমরা তাদের সাথে যোগাযোগ করতে পারি না।

সুতরাং, তাদের সাথে যোগাযোগের জন্য, আমরা ছাগলের ক্রিয়াকলাপগুলি নিয়ে গবেষণা করেছি এবং এই প্যাটার্নটি পুনরুদ্ধার করেছি, যা ভাষার মূল বিষয়।

প্রতিটি শব্দের দৈর্ঘ্যের জন্য 'ব্লিট' বলুন। তার মানে তিনটি বর্ণের চেয়ে বেশি লম্বা শব্দের জন্য 'ই'র পরিমাণ হওয়া উচিত (দৈর্ঘ্য -3) t উদাহরণস্বরূপ, 'be' 'bl' হয়ে ওঠে, তবে 'বিড়াল' এবং 'নৌকো' 'blt' এবং 'blet' হয়ে যায়।

যেমনটি মনে হয়, তারা প্রকৃতপক্ষে বর্ণমালার অক্ষরগুলি 'ব্লিট' তে পরিবর্তন করে না। আমাদের গবেষণায় দেখা গেছে যে 'হ্যালো, ওয়ার্ল্ড!' ব্লিটে হ'ল 'ব্লিট, ব্লিট!' 'ব্লিট ব্লিট' নয়। এছাড়াও, ছাগলগুলি তেমন বুদ্ধিমান (কোনও অপরাধ নয়), তাই তারা অ-এসকি চরিত্র বা ডায়াক্রিটিক্সগুলি মোটেই বোঝে না বলে মনে হয়।

এখন, ছাগল দেবতাদের সাথে যোগাযোগের জন্য অনুবাদক তৈরি করার সময় এসেছে।

Bleeeet (অর্থ: উদাহরণ)

Hello, World! => Bleet, Bleet!
lorem ipsum dolor sit amet. => Bleet Bleet Bleet Blt Blet.
We praise the Goat God! => Bl Bleeet Blt Blet Blt!
I have a pen => B Blet B Blt
0123456789_ => 0123456789_
0te_st1 => 0Bl_Bl1


1
এবং অ্যাডাস্ট্রোফিসযুক্ত শব্দগুলি সম্পর্কে কী? হবে it'sহয়ে Bltবা Bl'tবা Bl'B?
কেভিন ক্রুইজসেন 16

3
এটি আপনার উপর নির্ভর করে, তবে আপনি যদি এটি রাখেন তবে আমি প্রত্যেক উত্তরদাতাকে অবহিত করব। যদি আমাকে ছিল আমি মনে করি আমি সম্ভবত কোনো আচরণ অনুমতি চাই: তাদের পাস ( Jimmy's: Bleee't), তাদের শব্দ বিচ্ছিন্নতার হিসেবে বিবেচনা ( Jimmy's: Bleet'B), অথবা তাদের শব্দের অংশ হিসেবে বিবেচনা ( Jimmy's: Bleeeet)। যদি আমার একটিটি বেছে নিতে হয় আমি শব্দের বিভাজক বিকল্পটি সহ যাব, কারণ এটি 6 টি উত্তর দেয়।
জোনাথন অ্যালান

2
এটি সত্যিই ভাল চ্যালেঞ্জ, আমাদের আরও ভালো হওয়া উচিত।
ডাউনগোট

2
@ ডাউনগোট মানসম্পন্ন, বা ছাগলহীন?
ম্যাথু রোহ

উত্তর:


13

রেটিনা , 31 বাইট

T`lL`e
(?<!e)e
B
Be
Bl
e(?!e)
t

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

ব্যাখ্যা

T`lL`e

সমস্ত অক্ষর eগুলি এস।

(?<!e)e
B

eপ্রতিটি রানের মধ্যে প্রথমটি চালু করুন B

Be
Bl

ঘুরুন Beমধ্যে Bl

e(?!e)
t

গত ঘুরুন eপ্রতিটি রান t


T1LTপর্যায় "গোপন" অনুবাদ জোড়া, যাতে আপনি যে মত সব অক্ষর চালু করতে পারেনe
কোনোর ব্রায়েন

@ কনরোও ব্রায়েন এটি আসলে একটি ছোট-বড় মামলা lনয় 1, তবে "মোড়ক" দ্বারা আপনি কী বোঝাতে চেয়েছেন তা আমি নিশ্চিত নই। লিপ্যন্তর কেবল লক্ষ্য প্যাটার্ন শেষ অক্ষর পুনরাবৃত্তি, তাই যদি এটি ছিল T`lL`ef, আপনি মানচিত্রের চাই aথেকে eএবং সমস্ত অন্যান্য অক্ষরে f, alternatingly না eএবং f
মার্টিন ইন্ডার

এটি একটি খারাপ রসিকতা ছিল। দুঃখিত
কনওর ও'ব্রায়েন

4

জাভাস্ক্রিপ্ট (ES6), 79 77 74 বাইট

s=>s.replace(/[A-Z]+/gi,x=>x.replace(/./g,(_,i)=>'Bl'[i]||'et'[+!x[i+1]]))

বিকল্প পদ্ধতি, বর্তমানে 83 78 বাইট:

s=>s.replace(/[A-Z]+/gi,x=>`Bl${'e'.repeat((l=x.length)>3&&l-3)}t`.slice(0,l))

আমি পুনরাবৃত্তির সাথে সর্বোত্তম করতে পারি ৮৮ বাইট:

f=([c,...s],i=0,q=/^[A-Z]/i)=>c?q.test(c)?('Bl'[i]||'te'[+q.test(s)])+f(s,i+1):c+f(s):''

আমি সাথে এসেছি 'Blet'[i>1?2+!x[i+1]:i]কিন্তু দুঃখের বিষয় এটি একই দৈর্ঘ্য।
নীল

@ নীল হ্যাঁ, আমি বুঝতে পেরেছিলাম যে এটি করা সম্ভব হবে তবে আমি যেভাবে এটি করছি তার চেয়ে এটি প্রায় ছোট ছিল surprised
ইটিএইচ প্রডাকশনগুলি

4

পিএইচপি, 115 88 86 77 75 বাইট

preg_replace অ্যারে সহ (পিএইচপি 5.4 বা তার পরে প্রয়োজন)

echo preg_replace(["#[a-z]#i","#(?<!e)e#",_Be_,"#e(?!e)#"],[e,B,Bl,t],$argn);

এটি দিয়ে চালান echo '<string>' | php -nR '<code>'বা এটি অনলাইনে পরীক্ষা করুন

ভাঙ্গন

SEARCH      EXPLANATION             REPLACE     EXAMPLE
            original string                     Hello
[a-z]       every letter            e           eeeee
(?<!e)e     first letter            B           Beeee
Be          first two letters       Bl          Bleee
e(?!e)      last letter if still e  t           Bleet

5 পর্যালোচনা: মার্টিন ইন্ডার্স রেজেেক্স চেইনের সাহায্যে 9 টি বাইট সংরক্ষণ করা হয়েছে ।
(এটি বর্ণমালাবিহীন শব্দের অক্ষর = সংখ্যা / আন্ডারস্কোর সহ কেসগুলি স্থির করে))


3

হাস্কেল , 135 128 বাইট

b"e"="B"
b"ee"="Bl"
b('e':_:_:e)="Bl"++e++"t"
b e=e
e!(l:t)|elem l$['a'..'z']++['A'..'Z']=('e':e)!t|1<3=b e++l:""!t
e!_=[]
(""!)

এটি অনলাইন চেষ্টা করুন! ব্যবহারের (""!) $ "some string"। রেজেক্সেস ব্যতীত এটি বেশ দীর্ঘ হতে পারে, অন্য কোনও পদ্ধতির সংক্ষিপ্ততর হতে পারে। সম্পাদনা: সংরক্ষিত 7 বাইট @ নিমিকে ধন্যবাদ!


1
ফাংশন পুনঃনামকরণ করা bথেকে aআপনি তা অবিলম্বে আবেদন করতে পারেন যখন ফলে স্ট্রিং নির্মাণের এবং চূড়ান্ত বর্জন =<<: b!(l:t)|...|1<3=a b++l:""!t;b!_=a b;(""!)
নিমি

এটি জিমির পরীক্ষার জন্য অনলাইনে কাজ করে না আমি ব্লাবি ব্লিট'বি পেয়েছি
ক্লাবল্যাঙ্ক

@ ক্লেক্ল্যাঙ্ক এই প্রয়োজনীয়তাটি আমার উত্তরের পরে যুক্ত হয়েছিল এবং বর্তমানের বেশিরভাগ উত্তরকে অবৈধ করে দেয় ... আমাকে ওপিকে জিজ্ঞাসা করুন।
লাইকনি

@ লাইকনি ঠিক আছে আমি এই গেমটিতে দেরি করে এসেছি এবং অ্যাডাস্ট্রোফ পরিচালনা করা বিশেষত কঠিন ব্যতিক্রম।
ক্লাব্ল্যাঙ্ক

2

পার্ল 5 , 47 বাইট

মার্টিন ইন্ডারের রেটিনা উত্তরের মতো একই কৌশলটি ব্যবহার করে 15 বাইট সংরক্ষণ করা হয়েছে । (এই উত্তরটি এখন তার উত্তরের একটি বন্দর)

কোড + -pপতাকা 46 বাইট ।

s/\pl/e/g;s/(?<!e)e/B/g;s/Be/Bl/g;s/e(?!e)/t/g

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


পুরানো সংস্করণ: 62 বাইট:

s/\pl+/$l=length$&;$_=Bl.e x($l-3).t;chop while$l<y%%%c;$_/ge

এবং 68 বাইট:

s%\pl+%$_=$&;s/./B/;s/.\K./l/;s/(?<=..).(?=.)/e/g;s/..\K.$/t/;$_%ge

2

পিএইচপি, 84 বাইট

<?=preg_replace(["#[a-z]#i","#(?<!l)l#","#(?<=l)l#","#e(?!e)#"],[l,B,e,t],$argv[1]);

পিএইচপি, 117 বাইট

<?=preg_replace_callback("#[a-z]+#i",function($m){return substr(str_pad(Bl,-1+$l=strlen($m[0]),e).t,0,$l);},$argv[1]);

এর সাথে একটি বাইট সংরক্ষণ করুন-1+$l=...
টিটাস

@ টিটাস সুন্দর এবং আমি এর থেকে ভাল সমাধান খুঁজে পেয়েছি
জার্গ হালসারম্যান

1
Zwei Dumme - ein Gedanke। :) কিন্তু \blঅ বর্ণানুক্রমিক শব্দ অক্ষরের জন্য ব্যর্থ হলে: _we_। আপনি একটি সুনির্দিষ্ট বিবৃতি প্রয়োজন: (?<!l)l। জন্য একই e\b-> e(?!e)(+7 বাইটস)
তিতাস

@ টিটাস এরই মধ্যে এটি আমার মনে হয়েছে যে আমার ধারণাটি ভুল ছিল। এবং আমি আপনার জার্মান মন্তব্য পছন্দ।
জার্গ হালসারম্যান

2

সি, 120 151 140 111 108 105 104 92 90 বাইট

"এটি জিমির পরীক্ষা" -> ব্ল'বি ব্লিট'বি বুলেট এর পক্ষে কাজ করা

j;f(char*m){for(;*m=!isalpha(*m++)?j=0,*(m-1):"*Blet"[isalpha(*m)?j^3?++j:j:j>1?4:++j];);}

আসল স্ট্রিংটি ধ্বংস করে আউটপুট এখন একটি পার্শ্ব প্রতিক্রিয়া।

main(c,v)char**v;{
    char test[] = "The End is near Fellows!";
    f(test);puts(test);
    char test2[] = "We praise the Goat God!";
    f(test2);puts(test2);
    char test3[] = "It's Jimmy's test";
    f(test3);puts(test3);
    char test4[] = "0te_st1";
    f(test4);puts(test4);
    char test5[] = "I have a pen";
    f(test5);puts(test5);
    char test6[] = "_0123456789_";
    f(test6);puts(test6);
}

আমি মনে করি এটি এখন অন্তত সঠিক correct

Blt Blt Bl Blet Bleeeet!
Bl Bleeet Blt Blet Blt!
Bl'B Bleet'B Blet
0Bl_Bl1
B Blet B Blt
_012345678_


@DLosc আমি পাগল হইনি এবং এখনও মারা গেছি।
ক্লাব্ল্যাঙ্ক

2

পাইথন 2.7, 129 118 114 109 95 91 88 বাইট

import re
s=re.sub
def f(i):print s(r"e\b","t",s("Be","Bl",s(r"\be","B",s("\w","e",i))))

শুধু একটি re.subচেইন

ধাপে ধাপে

উদাহরণ ইনপুট: " আমরা ছাগলের praiseশ্বরের প্রশংসা করি! "


এলিয়াস সাব যাতে আমরা বারবার কলগুলিতে বাইট সংরক্ষণ করতে পারি

import re
s=re.sub

"E" দিয়ে সমস্ত শব্দের অক্ষর প্রতিস্থাপন করুন

s("\w","e",i)

আউটপুট: ee eeeeee eee eeee eee!

"বি" দিয়ে একটি শব্দের সীমানা (শব্দের সূচনা) এর আগে থাকা সমস্ত "ই" গুলি প্রতিস্থাপন করুন

s(r"\be","B",s("\w","e",i))

আউটপুট: Be Beeeee Bee Beee Bee!

"ব্ল" এর সাথে সমস্ত "থাকুন" প্রতিস্থাপন করুন

s("Be","Bl",s(r"\be","B",s("\w","e",i)))

আউটপুট: Bl Bleeee Ble Blee Ble!

"T" দিয়ে একটি শব্দ সীমানা অনুসরণ করা সমস্ত "e" গুলি প্রতিস্থাপন করুন

s(r"e\b","t",s("Be","Bl",s(r"\be","B",s("\w","e",i))))

আউটপুট: Bl Bleeet Blt Blet Blt!


পিপিসিজিতে আপনাকে স্বাগতম! আমরাও তাই প্রতিস্থাপন ফাংশন তাদের ফলাফল প্রিন্ট করতে দিই, returnসঙ্গে printএকটি বাইট সংরক্ষণ করা উচিত।
কনর ও'ব্রায়ান

rকাঁচা স্ট্রিং থেকে অগ্রণীদের অপসারণ করতে পারেন যদি তাদের 3 টি বাইট সংরক্ষণের কোনও ব্যাকল্যাশ না থাকে
কনর ও'ব্রায়ান

ধন্যবাদ @ কনরও'ব্রায়ান! আমি রেইগেক্সের একটি টুকরো সরল করতে সক্ষম হয়েছি (যা শেষ হওয়া দরকার r) এবং আমি এটি 95 বাইটে নামিয়ে আনলাম। পরামর্শের জন্য ধন্যবাদ!
ব্র্যান্ডন

ঠিক আছে আমি এটি 88 বাইটে নেমে এসেছি এবং আমার মনে হয় আমি এখানে সবচেয়ে ভাল করতে পারি
ব্র্যান্ডন

1

পিপ , 28 বাইট

aR+XA{Y'eX#a-3\"Bl\yt\"@<#a}

কমান্ড-লাইন আর্গুমেন্ট হিসাবে ইনপুট নেয়। এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

এটি মজাদার ছিল - আমি রেজেক্স মোডিফায়ার এবং স্ট্রিং ইন্টারপোলেশন ব্যবহার করতে পারি।

                              a is 1st cmdline arg; XA is the regex `[A-Za-z]` (implicit)
aR                            In a, replace
   XA                          the regex XA
  +                            wrapped in (?:  )+
     {                     }  with this callback function:
          #a-3                 Length of argument - 3
       'eX                     Repeat e that many times (empty string if #a-3 is negative)
      Y                        Yank that string into the y variable
              \"Bl\yt\"        An escaped string, which interpolates the value of y
                       @<#a    Take first len(a) characters
                              After the replacement, the string is autoprinted

1

পাইথন 3, 271 বাইট

আমি সচেতন যে এটি বরং দীর্ঘ এবং আমি কীভাবে দৈর্ঘ্য হ্রাস করতে পারি সে সম্পর্কে পরামর্শগুলি স্বাগত জানাই।

def f(s):
 b=[];t='';f=[];a=list.append
 for c in s:
  if c.isalpha():t+='e'
  else:
   if t:a(b,t);t=''
    a(b,c)
 if t:a(b,t)
 for i in b:
  i=[*i]
  if i[0]=='e':
   i[0]='B';i[-1]=[i[-1],'t'][len(i)>2]
   if len(i)>2:i[1]='l'
  a(f,''.join(i))
 return ''.join(f)

সাইটে স্বাগতম! আমি আপনি করতে পারেন একটি দম্পতি দেখুন। পাইথনে গল্ফ করার জন্য দরকারী টিপসের তালিকার জন্য আপনি আমাদের টিপস পৃষ্ঠা দেখতে পারেন ।
গম উইজার্ড

পরিবর্তে x.append(y)বা আপনার ক্ষেত্রে, a(x,y)আপনি করতে পারেন x+=y,(কমা প্রয়োজন)
সাইওস

1

স্ট্যাকড , 57 বাইট

'\l+'{!n size 2-:4\^5*1+3/\1<-4 tb 0\,'Blet'\#''join}repl

এটি অনলাইন চেষ্টা করুন! স্ট্যাকের শীর্ষ থেকে ইনপুট নেয়।

যাক একটি ( এন ) = এ 136412 ( এন - 2) = (5 × 4 এন - 2 + 1) ÷ 3. একটি ( এন ) কে 4 ফলনের ভিত্তিতে রূপান্তর করা :

এ (3) = 13 4 
এ (4) = 123 4 
এ (5) = 1223 4 
এ (6) = 12223 4
...

সূচকগুলি স্ট্রিংয়ে 0..3 ম্যাপিং Blet, আমরা পাই:

a (3) = lt
a (4) = যাক
a (5) = leet
a (6) = লীট
...

Bদৈর্ঘ্যের পরে এখন প্রিপেন্ডিং আমাদের কাঙ্ক্ষিত স্ট্রিং দেয়। অধিকাংশ ক্ষেত্রে. এক মাত্র জন্য বিশেষ ক্ষেত্রে হ্যান্ডেল করতে হবে এন ≤ 2. আমার ক্ষেত্রে, এই বিয়োগ (দ্বারা মীমাংসিত হয় এন - 2 <1) একটি সাংখ্যিক বুলিয়ান (1 "সত্যিকারের" জন্য এবং "মিথ্যা" জন্য 0) হিসাবে।

উত্তরের সুনির্দিষ্ট হিসাবে:

'\l+'{! ... }repl
             repl    replace all
'\l+'                alphanumeric strings ("letters")
     {!     }        applying this function to the result.


0

জাভা 7, 201 বাইট

String c(String s){String r="",z="e([^e]|$)";char p=0;int x;for(char c:s.toCharArray()){x=c&~32;p=x>64&x<91?p==66?'l':p>100&p<109?'e':66:c;r+=p;}return r.replaceAll("l"+z,"lt$1").replaceAll(z,"et$1");}

এটিতে সত্যই খুশি নয়, এবং অবশ্যই আরও কিছু গল্ফ করা যেতে পারে ..

ব্যাখ্যা:

String c(String s){               // Method with String parameter and String return-type
  String r="",                    //  The return-String
         z="e([^e]|$)";           //  Partial regex String that's used twice ('e' followed by non-'e' or nothing)
  char p=0;                       //  The previous character
  int x;                          //  Another temp value
  for(char c : s.toCharArray()){  //  Loop over the characters of the input String
    x = c&~32;                    //   Make every lowercase character uppercase (this returns an integer, hence the integer temp value, which is shorter than a cast to char)
    p = x>64 & x<91 ?             //   If the current character is a letter:
         p == 66 ?                //    And if the previous character is 'B':
          'l'                     //     Set the character value to 'l'
         : p>100&p<109 ?          //    Else if the previous character is either an 'e' or 'l':
            'e'                   //     Set the character value to 'e'
           :                      //    Else:
            66                    //     Set the character value to 'B'
         :                        //   Else (not a letter):
          c;                      //    Set the character to the current character
    r += p;                       //   Append the result-String with this character
  }                               //  End loop
  return r                        //  Return the result-String
    .replaceAll("l"+z,"lt$1")     //   After we've replaced all occurrences of "le." with "lt." (where "." can be anything else, including nothing at the end of a line)
    .replaceAll(z,"et$1")         //   And also replaced all occurrences of "ee." with "et." (where "." can again be anything else)
}                                 // End of method

পরীক্ষার কোড:

এখানে চেষ্টা করুন।

class M{
  static String c(String s){String r="",z="e([^e]|$)";char p=0;int x;for(char c:s.toCharArray()){x=c&~32;p=x>64&x<91?p==66?'l':p>100&p<109?'e':66:c;r+=p;}return r.replaceAll("l"+z,"lt$1").replaceAll(z,"et$1");}

  public static void main(String[] a){
    System.out.println(c("Hello, World!"));
    System.out.println(c("lorem ipsum dolor sit amet."));
    System.out.println(c("We praise the Goat God!"));
    System.out.println(c("I have a pen"));
    System.out.println(c("0123456789_"));
    System.out.println(c("0te_st1"));
  }
}

আউটপুট:

Bleeet, Bleeet!
Bleeet Bleeet Bleeet Blt Bleet.
Bl Bleeeet Blt Bleet Blt!
B Bleet B Blt
0123456789_
0Bl_Bl1

s.split("")s.toCharArray()কিছু বিশ্বাসের পরিবর্তে আমি বিশ্বাস করি
ক্রিটসি লিথোস

@ ক্রিটিক্সিলিথোস আমি এটি চেষ্টা করেছিলাম, তবে তারপরে আমার কাছে স্ট্রিংটি একটি চিঠি কিনা তা খতিয়ে দেখার বিষয়টি আছে (কোনও স্ট্রিংয়ে x=c&~32কাজ করবে না, এবং x>64&x<91উভয়ই আর কাজ করবে না)। আপনি যদি বিভক্তির সাথে এটি আরও সংক্ষিপ্ত করতে পারেন তবে আমাকে জানান।
কেভিন ক্রুইজসেন

0

05 এ বি 1 ই , 36 বাইট

lDAsSå.¡€g£vyAySåPigÍ<'e×"Blÿt"yg£}J

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

ব্যাখ্যা

ইনপুট প্রস্তুত করুন:

lD                                    # convert input to lower-case and duplicate
  As                                  # push lower-case alphabet and swap input to the top
    Så                                # check each char in input for 
                                      # membership in the alphabet
      .¡                              # split into chunks of equal elements
        €g                            # get length of each chunk
          £                           # split input into chunks of those lengths

এটি ['hello', ', ', 'world', '!'] ইনপুটগুলির মতো একটি তালিকা তৈরি করেHello, World!

ওভার লিস্ট:

v                          # for each element in the list
 y                         # push current element
  AySåPi               }   # if all members of current element are letters
        gÍ<'e×             # repeat string "e" len(element)-3 times
              "Blÿt"       # replace "ÿ" with the e's in the string "Blÿt"
                    yg£    # take the first len(element) chars of the string
                        J  # join to string
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.