সাধারণ এবং ভিজ্যুয়াল স্ট্রিং বিপর্যয়


17

কিছু কোড লিখুন যা একটি বিড়াল প্রোগ্রাম হিসাবে কাজ করে। এটি একটি স্ট্রিং ইনপুট করতে এবং যেমন হয় আউটপুট। তবে আপনার কোডের স্বাভাবিক বিপরীতে অবশ্যই ইনপুট স্ট্রিংয়ের স্বাভাবিক রূপান্তর আউটপুট করতে হবে। এবং আপনার কোডটির ভিজ্যুয়াল বিপর্যয়ের অবশ্যই ইনপুট স্ট্রিংয়ের ভিজ্যুয়াল রিভার্সনকে আউটপুট করতে হবে।

স্বাভাবিক বিপর্যয় একটি স্ট্রিং এর বিপরীত অক্ষর ক্রম হয়। ভিজ্যুয়াল রিভার্সন হ'ল যথাক্রমে ()[]{}<>পরিবর্তিত অক্ষরগুলির সাথে স্বাভাবিক বিপর্যয় )(][}{><

আপনি যে কোনও কোডপেজ ব্যবহার করতে পারেন যার অক্ষর রয়েছে এবং অক্ষরগুলি ()[]{}<>সংজ্ঞায়িত করার জন্য এই চ্যালেঞ্জের আগে প্রকাশিত হয়েছে। আপনার সমস্ত কোডের জন্য আপনাকে অবশ্যই একই কোডপেজটি ব্যবহার করতে হবে। আপনার কোডটি অবশ্যই এই কোডেপেজে বৈধ হওয়া উচিত এবং আপনার বিপরীত কোডের যে কোনওটিতে প্রয়োগ করলে তা নিজেই ফলন করতে পারে।

এটি , বাইট জেতে সংক্ষিপ্ততম কোড।

উদাহরণ

STRING এর জন্য AB(XY), তার স্বাভাবিক এবং চাক্ষুষ reversions হয় )YX(BAএবং (YX)BAযথাক্রমে।

যদি আপনার কোড (অনুমানের ভাষায়) হয় AB(XY), তবে কোডটি )YX(BAএবং (YX)BAইনপুট স্ট্রিংয়ের যথাক্রমে স্বাভাবিক এবং ভিজ্যুয়াল বিপরীতগুলি আউটপুট করে। এবং AB(XY)একটি বিড়াল প্রোগ্রাম হিসাবে কাজ করা উচিত।


এটা কি প্রত্যাশিত যে ইনপুট স্ট্রিংগুলিতে নিউলাইনগুলি থাকতে পারে?
ডিজিটাল ট্রমা

@ ডিজিটাল ট্রামুমা সে সম্পর্কে ভাবেন নি ... আপনি যে ইনপুট রুটিন ব্যবহার করেন তা যেভাবে ফিরে আসতে পারে আপনার প্রোগ্রামটিকে সমর্থন করা উচিত (যতক্ষণ না এটি স্ট্রিং দেয়)। এবং এটি নিজেই মূল কোডটিতে কাজ করা উচিত।
জিমি 23013

উত্তর:


9

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

এই সত্যটি ব্যবহার করে যে 05AB1E এর একটি ধ্রুবক পূর্বনির্ধারিত রয়েছে "()<>[]{}"এবং দর্শনীয় বিপরীতে প্রভাবিত হয় না।

কোড:

,q‡"}{][><)("užR

ব্যাখ্যা:

,                 # Pop and print the input.
 q                # Quit.
  ‡"}{][><)("užR  # This part is ignored.

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


বিপরীত:

Ržu"()<>[]{}"‡q,

ব্যাখ্যা:

R                 # Reverse the input.
 žu               # Short for "()<>[]{}".
   "()<>[]{}"     # Push this string.
             ‡    # Transliterate (no-op, since everything is transliterated to itself).
              q   # Quit and implicitly print.
               ,  # This part is ignored.

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


দৃষ্টি বিপরীত:

Ržu")(><][}{"‡q,

ব্যাখ্যা:

R                 # Reverse the input.
 žu               # Short for "()<>[]{}".
   ")(><][}{"     # Push this string.   
             ‡    # Transliterate (giving the visually reversed string).
              q   # Quit and implicitly print.
               ,  # This part is ignored.       

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

ব্যবহার সিপি-1252 এনকোডিং।


6

সিজেম, 21 বাইট

qe#ere$_"}{][><)("%Wq

এটি এখানে পরীক্ষা করুন।

সাধারণ বিপর্যয়:

qW%"()<>[]{}"_$ere#eq

এটি এখানে পরীক্ষা করুন।

ভিজ্যুয়াল বিপর্যয়:

qW%")(><][}{"_$ere#eq

এটি এখানে পরীক্ষা করুন।

ব্যাখ্যা

প্রথমত, সাধারণ কোড:

qe#ere$_"}{][><)("%Wq

এটি সহজ: qসমস্ত ইনপুট পড়ে, e#প্রোগ্রামটির বাকী অংশগুলি সম্পর্কে মন্তব্য করে এবং ইনপুটটি পুরোপুরি প্রবন্ধে মুদ্রিত হয়।

এখন স্বাভাবিক বিপর্যয়:

q            e# Read all input.
W%           e# Reverse it.
"()<>[]{}"   e# Push this string.
_$           e# Duplicate and sort it. However, the string is already sorted
             e# so we just get two copies of it.
er           e# Transliteration (i.e. character-wise substitution). But since the
             e# source and target string are identical, the reversed input
             e# is left unchanged.
e#eq            Just a comment...

এবং অবশেষে, দৃশ্য বিপর্যয়:

q            e# Read all input.
W%           e# Reverse it.
")(><][}{"   e# Push this string.
_$           e# Duplicate and sort it. This gives us "()<>[]{}", i.e. the
             e# same string with each bracket pair swapped.
er           e# Transliteration (i.e. character-wise substitution). This
             e# time, this toggles all the brackets in the reversed input
             e# completing the visual reversion.
e#eq            Just a comment...

আমার ঠিক এই কোডটি ছিল।
জিমি 23013

6

হাস্কেল, 124 বাইট

ফরওয়ার্ড করুন:

f=id
--esrever.q pam=2>1|esrever=2<1|f;x=x q;')'='(' q;'('=')' q;']'='[' q;'['=']' q;'>'='<' q;'<'='>' q;'}'='{' q;'{'='}' q

সাধারণ বিপরীত:

q '}'='{';q '{'='}';q '>'='<';q '<'='>';q ']'='[';q '['=']';q ')'='(';q '('=')';q x=x;f|1<2=reverse|1>2=map q.reverse--
di=f

ভিজ্যুয়াল বিপরীত:

q '{'='}';q '}'='{';q '<'='>';q '>'='<';q '['=']';q ']'='[';q '('=')';q ')'='(';q x=x;f|1>2=reverse|1<2=map q.reverse--
di=f

প্রতিটি সংস্করণ একটি ফাংশন সংজ্ঞায়িত করে fযা স্ট্রিং গ্রহণ করে এবং প্রদান করে। ফরোয়ার্ড মোডে fপরিচয় ফাংশনid , বাকী কোডটি একটি মন্তব্য। স্বাভাবিক বিপরীত মোডে পাহারা 1<2মধ্যে fহয় True, তাই reverseপ্রয়োগ করা হয়। ভিজ্যুয়াল রিভার্স মোডে, <সুইচটি করা হয় >এবং গার্ডটি থাকে False। দ্বিতীয় প্রহরীটি হ'ল অন্য উপায়ে চারপাশে এবং Trueভিজ্যুয়াল মোডে, সুতরাং অতিরিক্তভাবে qপ্রয়োগ করা হয় যা "() <>>} []" স্যুইচ করে।

f|1<2=reverse|1>2=map q.reverse      -- normal reverse mode
f|1>2=reverse|1<2=map q.reverse      -- visual reverse mode

এছাড়া <এবং >মধ্যে গার্ড, আমার কোড বন্ধনী কোন ব্যবহার করে না, তাই তারা বিশৃঙ্খলার সৃষ্টি করা যাবে না।


6

বাশ + সাধারণ লিনাক্স ইউটিলিটিস, ৫১

  • @ জিমি 23013 কে 2 বাইট সংরক্ষণ করা হয়েছে thanks
  • 2 অ্যাডাম্যাট্যাটজকে ধন্যবাদ বাইটস সংরক্ষণ করেছে
#'><}{][)(' `P5BD706D5AC79E196iFe- cd` rt|ver|
\cat

সাধারণ বিপর্যয়:

tac\
|rev|tr `dc -eFi691E97CA5D607DB5P` '()[]{}<>'#

ভিজ্যুয়াল বিপর্যয়:

tac\
|rev|tr `dc -eFi691E97CA5D607DB5P` ')(][}{><'#

এখানে মূল কৌশলটি স্ট্রিং ()[]{}<> 691E97CA5D607DB5 (বেস 15) হিসাবে এনকোড করা আছে। ফলস্বরূপ dcআদেশটি একই ধরণের ফলাফলকে উভয় প্রকারের বিপরীতে আসবে। তবে '()[]{}<>'স্ট্রিং আক্ষরিক বিপরীত প্রকারের প্রতি সংবেদনশীল।

tacইনপুট লাইনের revক্রমকে বিপরীত করতে প্রয়োজন এবং প্রতিটি লাইনের অক্ষরগুলি বিপরীত করা প্রয়োজন। যে কোনও এএসসিআইআই ইনপুট গ্রহণযোগ্য হবে।


5

এমএটিএল, 26 24 22 16 বাইট

অগ্রবর্তী

DPEXSt'><}{][)('

অনলাইনে চেষ্টা করে দেখুন!

ব্যাখ্যা:

                % Implicitly grab the input as a string
D               % Pop the top of the stack and display it
P               % Tries to flip the top element on the stack but errors out
                % because the stack is empty. Program terminates.
EXSt'><}{][)('  % Not executed

সাধারণ বিপর্যয়:

'()[]{}<>'tSXEPD

অনলাইনে চেষ্টা করে দেখুন!

ব্যাখ্যা:

            % Implicitly grab input as a string
'()[]{}<>'  % String literal (search string)
tS          % Duplicate and sort to create the replacement string: '()[]{}<>'
XE          % Replace all entries in the input using the search and replacement strings. 
            % Corresponding characters in the strings are used for the replacement.
            % Effectively a no-op
P           % Flip the string
D           % Explicitly display result

ভিজ্যুয়াল বিপর্যয়:

')(][}{><'tSXEPD

অনলাইনে চেষ্টা করে দেখুন!

ব্যাখ্যা:

            % Implicitly grab the input as a string
')(][}{><'  % String literal (search string)
tS          % Duplicate and sort to create the replacement string: '()[]{}<>'
XE          % Replace all entries in the input using the search and replacement strings. 
            % Corresponding characters in the strings are used for the replacement. 
P           % Flip the result
D           % Explicitly display the result

ভিজ্যুয়াল রিভার্সন হ'ল যথাক্রমে পরিবর্তিত অক্ষরগুলির সাথে স্বাভাবিক বিপর্যয়()[]{}<>)(][}{><
এরিক আউটগল্ফার

@। আপডেট হয়েছে।
সোয়েভার

3

গল্ফস্ক্রিপ্ট, 32 28 বাইট

#%{=1-[=-\7?@.`{[(<>)]}.}%1-

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

সাধারণ বিপর্যয়:

-1%}.}])><([{`.@?7\-=[-1={%#

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

ভিজ্যুয়াল বিপর্যয়:

-1%{.{[(<>)]}`.@?7\-=]-1=}%#

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

কোনও মিল নেই যে }গল্ফস্ক্রিপ্টে প্রোগ্রামটি সমাপ্ত করে, এটি মোটামুটি সহজ করে তুলেছে। তবে আমি নিশ্চিত যে বন্ধনী অদলবদলের জন্য আমার কোডটি এখনও অনুকূল নয়।


0

পাইথন 2.7, 208 বাইট

অগ্রবর্তী

import sys#
print''.join(sys.stdin)#
#0:tpecxe
#"]1-::[)nidts.sys(nioj.'' tnirp"cexe:yrt
#0:tpecxe
#"(('<>{}[]()','><}{][)(')snartekam.s)etalsnart.[1-::](nidts.sys)nioj.'' tnirp"cexe:yrt
#s sa gnirts,sys tropmi

সাধারণ বিপর্যয়

import sys,string as s#
try:exec"print''.join)sys.stdin(]::-1[.translate)s.maketrans)'()[]{}<>',')(][}{><'(("#
except:0#
try:exec"print''.join(sys.stdin)[::-1]"#
except:0#
#)nidts.sys(nioj.''tnirp
#sys tropmi

https://eval.in/574639

ভিজ্যুয়াল বিপর্যয়

import sys,string as s#
try:exec"print''.join(sys.stdin)[::-1].translate(s.maketrans(')(][}{><','()[]{}<>'))"#
except:0#
try:exec"print''.join)sys.stdin(]::-1["#
except:0#
#(nidts.sys)nioj.''tnirp
#sys tropmi

https://eval.in/574638

স্টিডিন থেকে ইওএফ অবধি সমস্ত দিকনির্দেশ।

এখানে সুপার চালাক কিছুই নেই। পিছনে কোড বনাম কেবল ফরোয়ার্ড কার্যকর করতে মন্তব্যগুলি অনুসরণ করে, তারপরে execদুটি ভিন্ন বিপরীতগুলির জন্য সিনট্যাক্স ত্রুটিগুলি ধরার চেষ্টা ব্লকের একটি বিবৃতি।

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