প্যালিনড্রোম বহুগ্লোট


15

আপনার কাজটি এমন একটি প্রোগ্রাম লিখতে হয় যা দুটি ভিন্ন ভাষায় চলে এবং নিম্নলিখিতটি করে:

  • একটি ভাষায়, এটি প্রদত্ত স্ট্রিংটিকে প্যালিনড্রোমাইজ করে।
    • স্ট্রিং নিন। abcde
    • স্ট্রিং বিপরীত। edcba
    • প্রথম চরিত্রটি সরান। dcba
    • এটি মূল স্ট্রিং উপর আঠালো। abcdedcba
  • অন্য ভাষায়, এটি প্রদত্ত স্ট্রিংকে নিম্নচালিত করে।
    • উপরের পদ্ধতিটি দ্বারা প্যারিড্রাইমযুক্ত একটি স্ট্রিং নিন। abcdedcba
    • শুরু থেকে মাঝের অক্ষরগুলি পান। abcde

মনে রাখবেন, এটি , তাই সর্বাধিক অক্ষরের কোড (বাইট নয়) জয়।

লিডারবোর্ড

নিয়মিত লিডারবোর্ড এবং ভাষার দ্বারা বিজয়ীদের একটি সংক্ষিপ্ত বিবরণ উভয়ই তৈরি করতে এখানে একটি স্ট্যাক স্নিপেট।

আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেমপ্লেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:

# Language 1/Language 2, N bytes

Nআপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:

# Ruby/Python, <s>104</s> <s>101</s> 96 bytes

যদি আপনি নিজের শিরোনামে একাধিক সংখ্যা অন্তর্ভুক্ত করতে চান (যেমন আপনার স্কোর দুটি ফাইলের সমষ্টি বা আপনি আলাদাভাবে দোভাষী পতাকা দণ্ডের তালিকা করতে চান), নিশ্চিত করুন যে আসল স্কোরটি শিরোনামের শেষ সংখ্যা:

# Perl/C, 43 + 2 (-p flag) = 45 bytes

আপনি ভাষাটির নামটিকে একটি লিঙ্কও বানাতে পারেন যা লিডারবোর্ড স্নিপেটে প্রদর্শিত হবে:

# [><>](http://esolangs.org/wiki/Fish)/Python, 121 bytes


@ লুইসমেডো এক সেকেন্ড ...
অলিভার নি

@ লুইস মেন্ডো ঠিক আছে, আমি ক্যাসিটনটি আপডেট করেছি
অলিভার নি

স্ট্রিংটিতে কি কখনও নিউলাইন থাকবে?
এরিক আউটগল্ফার

দুটি ভাষায় ইনপুট ফর্ম্যাটটি কি আলাদা হতে পারে? এনকোলেসিং কোট বা তাদের ছাড়াই স্ট্রিংয়ের মতো
লুইস মেন্ডো

@ লুইস মেন্ডো হ্যাঁ
অলিভার নি

উত্তর:


14

05 এ বি 1 ই / এমএটিএল , 10 9 টি অক্ষর

9LQ2/)%¹û

05AB1E এ এই প্যালিনড্রোমাইজ করে । এমএটিএল-এ এটি অবনমিত হয়

05AB1E তে ব্যাখ্যা

কোডটির এই অংশটি কিছুই করে না (বিশ্বব্যাপী):

9L    Pushes array [1, 2, ... 9]
Q     Consumes the array, takes the input implicitly, and produces no output
2/    With no further input to take implicitly, this gives no output
)     Wrap stack into an array: gives an empty array
%     Consumes that array and, with no further input to take implicitly, gives no ouput 

এটি সেই অংশ যা কাজ করে:

¹     Push input again
û     Palindromize. Implicitly display

এমএটিএল-তে ব্যাখ্যা

এটি সেই অংশ যা কাজ করে:

9L    Push array [0, 1j]
Q2/   Add 1, divide by two: transforms into [1/2, (1+1j)/2]
)     Use as index into implicit input. [1/2, (1+1j)/2] is interpreted as
      1/2:(end+1)/2, which is rounded to 1:(end+1)/2. So this takes elements
      from first to half, including both. Implicitly display

এটি উপেক্ষা করা হয়:

%¹û   Everything after '%' is a comment

12

05 এ বি 1 ই / জেলি , 6 টি অক্ষর

05AB1E এ প্যালিনড্রোমাইজ করে।
জেলি মধ্যে Depalindromizes।

œs2Ḣ¹û

05AB1E এ চেষ্টা করুন

05AB1E ব্যাখ্যা

œ       # compute powerset of input
 s      # swap (does nothing)
  2     # push 2
   Ḣ    # does nothing
    ¹û  # palindromize input

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

জেলি ব্যাখ্যা

œs2     # split input in 2 chunks (first chunk is larger for odd length strings)
   Ḣ    # head, take first
    ¹û  # does nothing

6

পাইথন 3 / জাভাস্ক্রিপ্ট, 83 টি অক্ষর

2 লিটস সংরক্ষণ করেছেন @ লিভিটিটিংলায়নকে ধন্যবাদ

1//2;x=input();print(x+x[-2::-1]);"""
x=prompt();alert(x.slice(0,-x.length/2))//"""

পাইথন প্যালিনড্রোমাইজ করে , জাভাস্ক্রিপ্ট নিম্নচালিত হয়

আমি দু'জনের মধ্যে আরও কোড ধ্রুবক রাখার চেষ্টা করেছি, তবে .sliceপাইথনে লুকিয়ে থাকার কোনও ভাল উপায় আমি বের করতে পারি না । এখানে একটি বিকল্প পদ্ধতি:

1//2;prompt=input,alert=print
x=prompt();1//2;x+=x[-2::-1]);"""
x=x.slice(0,-x.length/2))//"""
alert(x)

আপনি প্রতিস্থাপন করতে পারেন x[::-1][1:]সঙ্গে x[-2::-1]সংরক্ষণ দুই অক্ষর।
LevitatingLion

@ লাইভেটিটিংলায়ন আপনাকে ধন্যবাদ! আমি দুটি স্লাইস কীভাবে একত্রিত করব তা বোঝার চেষ্টা করেছি, তবে কিছুই কার্যকর হয়নি বলে মনে হয়েছে।
ইটিএইচ প্রডাকশনস

5

স্কালা / জাভাস্ক্রিপ্ট, 106 বাইট

/*\u002A/print(args(0)+args(0).reverse.tail)//*/
/*/**/
alert((s=prompt()).slice(0,-s.length/2))//\u000A*/

স্ক্যালায় Palindromizes এবং জাভাস্ক্রিপ্টে depalindromizes।

এটিকে আইডোন ( স্কেলা ) এ চেষ্টা করুন - সতর্কতা: ভুল সিনট্যাক্স হাইলাইট করা

এটি jsfiddle (জাভাস্ক্রিপ্ট) এ চেষ্টা করে দেখুন ।

ব্যাখ্যা:

স্কেল, জাভা এর মতো, ইউনিকোড থেকে প্রক্রিয়াজাতকরণের আগে সমস্ত কিছুর আগে পালিয়ে যায়, সুতরাং স্ক্যালাক কোডটি দেখতে পান:

/**/                                //\u002A is as asterisk, results in an empty block comment
print(args(0)+args(0).reverse.tail) //scala code
//*/                                //a line comment
/*                                  //scala supports nested block comments, so this comment...
  /*
  */
  alert((s=prompt()).slice(0,-s.length/2)) 
  //                                  //\u000A (newline) inserted here
*/                                  //...ends here

জাভাস্ক্রিপ্টটি এভাবে পার্স করা হয়েছে:

/*\u002A/print(args(0)+args(0).reverse.tail)//*/ //block comment
/*                                               //a block comment...
  /*
*/                                               //...ending here, no nesting
alert((s=prompt()).slice(0,-s.length/2))         //code
//\u000A*/                                       //line comment

4

সিজেএম / এমএটিএল , 18 টি অক্ষর

r_W%(;
"j9LQ2/)%";

সিজেমে এই প্যালিনড্রোমাইজ করে । এমএটিএল-এ এটি অবনমিত হয়

সিজেমে ব্যাখ্যা

কাজের অংশ:

r           Read string
_           Duplicate
W%          Reverse
(;          Remove first element

ডামি অংশ:

"j9LQ2/)%"  Push this string
;           Remove it from the stack
            Implicitly display both strings obtained previously

এমএটিএল-তে ব্যাখ্যা

ডামি অংশ:

r           Push random number between 0 and 1
_           Negate
W           2 raised to that
%(;  Comment (ignored)

কাজের অংশ:

"           For each element in the array at the top of the stack. Since it is a number,
            which is the same as a length-1 array, the following is executed once
  j         Input string
  9L        Push array [0, 1j]
  Q2/       Add 1, divide by 2: transforms into [1/2, (1+1j)/2]
  )         Use as index. [1/2, (1+1j)/2] is interpreted as 1/2:(end+1)/2, which is
            rounded to 1:(1+end)/2. So this takes elements from first to half,
            including both

আরেকটি ডামি অংশ:

   %";      Comment (ignored)
            Implicitly display the previously obtained string

4

J / জাভাস্ক্রিপ্ট ES6, 55 টি অক্ষর

this._?Σ(`ï+ï.Ħ⬮.Đ1`):(x=prompt()).slice(0,-x.length/2)

Try it here (ES6 browsers only).

Pal এ প্যালিনড্রোমাইজ করে, জাভাস্ক্রিপ্ট ইএস 6-এ অবনতি হয়।

আমি যদিও এটি সহজ হতে চলেছিলাম, যেহেতু E ES6 এর সংকলন এবং ES6 এর বেশিরভাগটি 𝔼𝕊𝕄𝕚𝕟 এ চালানো যেতে পারে 𝔼𝕊𝕄𝕚𝕟 স্পষ্টতই, আমি সম্পূর্ণ ভুল।

ব্যাখ্যা

this._বৈকল্পিক _বিশ্বব্যাপী সুযোগে আছে কিনা তা পরীক্ষা করে দেখুন ; L লোডাশ ব্যবহার করে এবং তাই এটি _সঞ্চয় করে ফেলেছে , তবে খাঁটি ES6 তা দেয় না।

𝔼𝕊𝕄𝕚𝕟 বিভাগ - Σ(`ï+ï.Ħ⬮.Đ1`)- কোডটিকে স্ট্রিং থেকে মূল্যায়ন করে যা ইনপুটকে প্যালিনড্রোমাইজ করে। সাধারণত কোডটি হবে তবে সংকলকটিকে খুশি করতেï+ïĦ⬮Đ1 আমি বিন্দুগুলি রেখেছি ।

জাভাস্ক্রিপ্ট বিভাগ - (x=prompt()).slice(0,-x.length/2)- একটি প্রম্পট থেকে একটি স্ট্রিং depalindromizes।


আমি একটি ফাংশন ব্যবহার করতে যাচ্ছি (সুতরাং আমার সাথে ডিল করতে হয়নি prompt), তবে 𝔼𝕊𝕄𝕚𝕟 এর মূল্যায়ন ফাংশনটি পছন্দ করেন না, তাই আমি সংকলকটিকে খুশি করতেprompt কোনও ফাংশন ব্যবহার করেছি এবং কোনও ফাংশন ব্যবহার করি না


বাহ, সংকলক এর পিক।
হাইপারনিউটারিনো

4

জাভাস্ক্রিপ্ট ES6 / জাভাস্ক্রিপ্ট ES3, 143 বাইট

function(x){'use strict';function a(){return x+x.split('').reverse().slice(1).join('')}{function a(){return x.slice(0,-x.length/2)}}return a()}

জাভাস্ক্রিপ্ট ES6 এ Palindromizes, জাভাস্ক্রিপ্ট ES3 এ depalindromizes অ-প্রতিযোগিতা , এটি একই ভাষার দুটি সংস্করণের জন্য বহুভুজ তৈরি করার চেষ্টা মাত্র।

ES3- এ ব্লকগুলিতে অনুমতি দেওয়া হয় তবে ব্লকগুলি স্কোপগুলি সংজ্ঞায়িত না করে কেবল প্রথম ফাংশনটি প্রতিস্থাপন করে। ES5 কঠোর মোডে এটি ব্যর্থ হয় কারণ এটি ব্লকগুলিতে ফাংশনগুলি সংজ্ঞায়িত করতে দেয় না। ES6 এ এটি অনুমোদিত এবং, কারণ ব্লকগুলি এখন স্কোপগুলি সংজ্ঞায়িত করে, প্রথম ফাংশনটি প্রতিস্থাপন করা হয়নি।

ES3 এবং নোড.জেএস এবং ফায়ারফক্স ES6 এর জন্য ইন্টারনেট এক্সপ্লোরার 5 (অনুকরণীয়) তে পরীক্ষিত।


4

জেলি / সিজেম, 15 14 টি অক্ষর

q_,2./m]<e#¶ŒB

-1 গৃহস্থালি 42545 (ETH প্রোডাকশন) ধন্যবাদ

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

সিজেএম দোভাষী (Depalindromization)

জেলি ব্যাখ্যা:

জেলিতে, একইরকম \n, তাই জেলি এটি দেখেন:

q_,2./m]<e#
ṖṚṭ

ṖṚṭ         Main link. Arguments: z
Ṗ           Pop
 Ṛ          Reverse
  ṭ         Append
   ⁸        (implicit) z

সিজেমের ব্যাখ্যা:

সিজেমে প্রতিটি e#লাইনের পরে একটি মন্তব্য। সুতরাং, সিজেম এটি দেখেছে:

q_,2./m]< Code
q         All input
 _        Duplicate
  ,       Length
   2.     2.0
     /    Float division
      m]  Ceil
        < Take

@ ইথ প্রডাকশনস ওফফফ, আমি এটি ভুলে গেছি! এটিকে "বাউন্স" বলা হয়, এজন্যই।
এরিক আউটগল্ফার

4

পার্ল / জাভাস্ক্রিপ্ট, 73 বাইট

পার্ল একটি প্যালিনড্রোম দেয় এবং জাভাস্ক্রিপ্ট ইনপুট স্ট্রিংটিকে 'ডি-প্যালিনড্রোমাইজ করে' দেয়।

s=prompt();console.log(s.slice(0,-s.length/2));eg=1;t=eg;s=$=reverse$_=eg

জাভাস্ক্রিপ্ট

ধরে নিন স্ট্রিংটি ইতিমধ্যে একটি বৈধ প্যালিনড্রোম।

সমস্ত কাজ প্রথম বিভাগে ঘটে:

s=prompt();console.log(s.slice(0,-s.length/2));

ইনপুট সঞ্চয় করে s, তারপরে স্ট্রিংয়ের প্রথমার্ধ (রাউন্ড-আপ) প্রদান করে। স্ক্রিপ্টের বাকী অংশটি অর্থহীন ভেরিয়েবল অ্যাসাইনমেন্ট:

eg=1;t=eg;s=$=reverse$_=eg

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

s=prompt();console.log(s.slice(0,-s.length/2));eg=1;t=eg;s=$=reverse$_=eg

পার্ল

অবশ্যই এটি দিয়ে চালানো উচিত -pl:

perl -ple 's=prompt();console.log(s.slice(0,-s.length/2));eg=1;t=eg;s=$=reverse$_=eg' <<< 'test'
# returns testtset

কোডটি মূলত দুটি বিকল্প ( s///), তবে =পরিবর্তে ডিলিমেটার হিসাবে ব্যবহার করে /:

s/prompt();console.log(s.slice(0,-s.length\/2));eg/1;t/eg;s/$/reverse$_/eg

প্রথমটি প্রতিস্থাপন prompt();console.log(s.slice(0,-s.length\/2));eg(যা স্বতঃস্ফূর্তভাবে আপনার স্ট্রিংকে "prompt;console.logs.slice0,-s.length/2;eg"জড়িয়ে ফেলবে যদি এতে কিছু থাকে ...) 1;tযা দিয়ে সম্পাদনা করা হচ্ছে eval, ফিরে আসবেt , দ্বিতীয়টি স্ট্রিংয়ের শেষের পরিবর্তে ( $) reverse$_যার পরে evalএড হয় এবং মূল উত্স সংযোজন করে স্ট্রিং বিপরীত।

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


3

পাইথন 2 / নিম , 76 74 বাইট

#[
s=input();print s+s[-2::-1]#let s=stdin.readLine;echo s[0..s.len div 2]

পাইথনকে প্যালিনড্রোমাইজ করে, নিমে নিমজ্জিত করে। আপত্তিজনক মন্তব্য সিনট্যাক্স।

পাইথন এবং নিম উভয় #মন্তব্যের জন্য ব্যবহার করে । পাইথন ব্লক মন্তব্যগুলিতে মোটেও সমর্থন করে না (সাথে মাল্টলাইনযুক্ত স্ট্রিং ছাড়া """), তবে নিম তা করে with#[ comment ]#

আমরা নিমের জন্য পাইথন (শুরুতে) মন্তব্য করার জন্য এটিকে গালাগাল করি, তারপরে অনুসরণ করা ব্যবহার করুন use ] পাইথনের দিকটি নিম কোড শুরু করতে ব্যবহার করুন, পাইথনের মন্তব্যের মতো like

পাইথন কোডটির জন্য এর ইনপুটটি কোট দিয়ে আবশ্যক। নিম কোডটিতে এই সীমাবদ্ধতা নেই।

পাইথন ২.7.৮ এবং নিম ০.০৪.২ এ পরীক্ষিত।

আইডিয়ন! - পাইথন 2, প্যালিনড্রোমাইজিং

আইডিয়ন! - নিম, আপত্তিজনকভাবে নিম আইডিয়ন ব্যবহারের সংস্করণ (0.11.2) বহুলক্ষণ মন্তব্য সমর্থন করে না। নিম 0.14.2 এ কাজ করে।




2

জাপট / জাভাস্ক্রিপ্ট, rs৩ টি অক্ষর

দিনের পাঠ: জাপট / জাভাস্ক্রিপ্ট বহুগলগুলি সর্বদা একটি খারাপ ধারণা ...

$Oq=1;$Oq &&0
alert(($U=prompt()).slice(0*$U,-$U.length/2));$Uê

জাভাস্ক্রিপ্ট

প্রথম লাইনটি ভেরিয়েবলটিকে $Oq1 এ সেট করে , তারপরে একটি নো-ওপেন করে $Oq &&0

দ্বিতীয় লাইন, একটি ইনপুট স্ট্রিং লিখতে অনুরোধ পরিবর্তনশীল তা নির্ধারণের $U, তারপর সূচক থেকে এটা টুকরা 0*$U(সবসময় 0) সূচক -$U.length/2। এটি প্রয়োজনীয় ডিপ্যালাইন্ড্রোমাইজেশন সম্পাদন করে; ফলাফলটি তখন alertএড হয়। প্রোগ্রামটি একটি রেফারেন্সঅরারে শেষ হয় কারণ পরিবর্তনশীল$Uê সংজ্ঞায়িত হয় না।

Japt

জাপটে ডলারের লক্ষণগুলির মধ্যে যে কোনও কিছুই সরাসরি স্থানান্তরিত উত্স কোডের মধ্যে .োকানো হয়। এর বাইরে, প্রতিটি ছোট হাতের অক্ষর উদাহরণস্বরূপ স্থানান্তরিত হয় .q(, যদি না পূর্ববর্তী চরটি অন্য একটি ছোট হাতের অক্ষর হত, যা ক্ষেত্রে এটি হয়ে যায়"q" । একটি স্থান স্থানান্তরিত হয় )এবং সমস্ত অনুপস্থিত প্যারেন স্বয়ংক্রিয়ভাবে যুক্ত হয়। উপরের প্রোগ্রামটি মোটামুটি এখানে স্থানান্তর করে:

Oq=1;O.q()&&0
.a("l".e("r".t((U=prompt()).slice(0*U,-U.length/2))));U.ê()

এটি তখন জাভাস্ক্রিপ্ট হিসাবে কার্যকর করা হয়। Oq=1;ভেরিয়েবল সেট করেOq 1 এ This এটি আর কখনও ব্যবহার করা হয় না, সুতরাং এটি কোনও অপশন নেই। O.q()এটি এমন একটি ফাংশন যা STDOUT সাফ করে এবং ফেরত দেয়undefined ; এটি মিথ্যা, তাই সম্পূর্ণ&&0 .a("l".e(... অংশটি কার্যকর হয় না।

সত্যিকার অর্থে একমাত্র অংশটি U.ê()। অন্তর্নিহিত ইনপুট ইনপুট স্ট্রিংটি ভিতরে রাখেU , .ê()এটিকে প্যালিনড্রোমে পরিণত করে এবং অন্তর্নিহিত আউটপুট ফলাফলটি STDOUT এ প্রেরণ করে।


যদি ফাংশন এন্ট্রি অনুমোদিত হয়, নিম্নলিখিত 34 অক্ষরের জন্য নিম্নলিখিত কাজ করবে:

X=>($X=X).slice(0,-X.length/2);$Uê

প্রথম অংশটি একটি ES6 ফাংশন সংজ্ঞায়িত করে, তবে এটি এখনও জাপটে একটি সম্পূর্ণ প্রোগ্রাম। এটি অনলাইন পরীক্ষা!


2

জাভা / ব্রেইনফাক, 71 বাইট

/*+[,>]<[<]>[.>]<<[.<][*/a->a.substring(0,Math.ceil(a.length()/2d));//]

বিএফ-এ প্যালিনড্রোমাইজ করে, জাভাতে নিম্নচিকিত্সা করে।

স্পষ্টতার স্বার্থে, বিএফ-এর অনুবাদকের কাছে এটিই গুরুত্বপূর্ণ:

+[,>]<[<]>[.>]<<[.<][->,..]

যেখানে জাভা ল্যাম্বডা থেকে অক্ষরগুলি অন্তর্ভুক্ত শেষ লুপটি এড়িয়ে গেছে কারণ পয়েন্টারটি সেই বিন্দুতে শূন্য চরিত্রের দিকে নির্দেশ করে।


0

05 এ বি 1 ই / জাভা 8, 102 অক্ষর

//¹ûq
interface M{static void main(String[]a){System.out.print(a[0].substring(0,a[0].length()/2+1));}}

05AB1E এ Palindromize।
জাভা 8 এ Depalindromize।

ব্যাখ্যা 05AB1E:

//     # No-ops
¹      # First input
 û     # Palindromize it
  q    # Terminate the program
interface M{static void main(String[]a){System.out.print(a[0].substring(0,a[0].length()/2+1));}}
       # No-ops

ব্যাখ্যা জাভা 8:

//¹ûq                           // No-ops
interface M{                    // Class
  static void main(String[]a){  //  Mandatory main-method
    System.out.print(           //   Print to STDOUT:
      a[0].substring(0,         //    The substring of the input-argument from index 0 to
        a[0].length()/2+1));}}  //    the length of the input integer-divided by 2 plus 1
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.