সংযোজন বা প্রস্তুতি? নির্ভর করে


23

মস্তিষ্ক-ফ্লাক আগামীকাল এক বছর বয়সী হয়ে উঠবে ! এটির জন্মদিনের সম্মানে, আমরা একটি পিপিসি স্টাইলের জন্মদিনের পার্টি করছি, যেখানে বেশ কয়েকটি ব্যবহারকারী মস্তিষ্ক-ফ্লাক সম্পর্কিত প্রশ্ন পোস্ট করেন! আমাদের উদযাপন করতে সহায়তা করুন! :)


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

  • এই চ্যালেঞ্জের উদ্দেশ্যে, একটি "বন্ধনী" এই অক্ষরের কোন হল: ()[]{}<>

  • খোলার এবং বন্ধ করার বন্ধনীগুলি সঠিক ক্রমে থাকে এবং সেগুলির ভিতরে কোনও অক্ষর না থাকলে, একটি জোড়া বন্ধনী "মিলিত" হিসাবে বিবেচিত হয় as

    ()
    []{}
    

    বা এর অভ্যন্তরে প্রতিটি প্রতিবিম্বের সাথে যদি মিলও হয়।

    [()()()()]
    {<[]>}
    (()())
    

    সুবিলিমেটগুলি বেশ কয়েকটি স্তরকে গভীরভাবে নেস্ট করা যায়।

    [(){<><>[()]}<>()]
    <[{((()))}]>
    
  • একটি স্ট্রিংকে "সম্পূর্ণ মিলিত" হিসাবে বিবেচনা করা হয় যদি এবং কেবল যদি:

    1. প্রতিটি একক অক্ষর একটি বন্ধনী,

    2. প্রতিটি বন্ধনী বন্ধনের সঠিক উদ্বোধন এবং বন্ধ বন্ধনী এবং সঠিক ক্রমে থাকে

মস্তিষ্ক-ফ্লাকের প্রথম জন্মদিন উদযাপনে, আজকের চ্যালেঞ্জটি হ'ল ভারসাম্যহীন বন্ধনীর সেট নিয়ে নেওয়া এবং এটি বৈধ মস্তিষ্ক-ফ্লাক তৈরি করতে কোন ধরণের অপারেশন প্রয়োজন তা নির্ধারণ করা।

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

  • একইভাবে, >}বৈধ নয়, তবে আমরা {<এটি তৈরি করতে প্রিপেন্ড করতে পারি {<>}, যা বৈধ। এটি এই ইনপুটটিকে প্রিপেন্ডেবল করে তোলে ।

  • কিছু ইনপুট কিছুটা জটিল। উদাহরণস্বরূপ, )][({সংযোজন বা প্রিপেন্ডিংয়ের মাধ্যমে খাঁটিভাবে বৈধ করা যায় না। কিন্তু এটা করতে prepending দ্বারা বৈধ করা [(এবং সংযোজন })]। অতএব, এই ইনপুটটি প্রিপেন্ডেবল এবং অ্যাপেন্ডেবল উভয়ই ।

  • শেষ অবধি, কিছু ইনপুট সংযোজন বা প্রিপেন্ডিংয়ের কোনও সংমিশ্রণ দ্বারা কখনই বৈধ মস্তিষ্ক-ফ্ল্যাক কোড তৈরি করা যায় না। উদাহরণস্বরূপ, (>কখনই বৈধ করা যায় না। (প্রস্তুতি <তৈরি করে <(>এবং সংযোজন )তৈরি করে (>), যার মধ্যে কোনটি বৈধ নয়) অতএব, এই ইনপুটটি পরিমিত বা প্রিপেন্ডেবলও নয়।

আজকের চ্যালেঞ্জের জন্য আপনার অবশ্যই একটি প্রোগ্রাম বা ফাংশন লিখতে হবে যা বন্ধনীগুলির একটি স্ট্রিং নেয় এবং স্ট্রিংটি কিনা তা নির্ধারণ করে

appendable
prependable
both
neither

আপনি প্রতিটি ক্ষেত্রে প্রতিনিধিত্ব করতে কোন মান ব্যবহার করেন তা চয়ন করতে পারেন। উদাহরণস্বরূপ, আউটপুট 1, 2, 3, 4, বা 'a', 'p', 'b', 'n', বা 1, 'foo', 3.1415, -17, বা যা কিছু ভাল। যতক্ষণ না প্রতিটি আউটপুট স্বতন্ত্র এবং সামঞ্জস্যপূর্ণ তা ঠিক আছে। তবে আপনাকে অবশ্যই স্পষ্টভাবে উল্লেখ করতে হবে যে কোন আউটপুটটি কেসের সাথে সম্পর্কিত।

আপনি যেকোনো বিন্যাসে এই মানটি সবচেয়ে সুবিধাজনক হিসাবে ফিরিয়ে দিতে পারেন (উদাহরণস্বরূপ, কোনও ফাংশন থেকে ফিরে আসা, STDOUT এ মুদ্রণ করা, যুক্তি সংশোধন করা, কোনও ফাইলে লেখা ইত্যাদি)।

আপনি ধরে নিতে পারেন যে ইনপুটটি কখনই বৈধ মস্তিষ্কের-ফাঁকা বা খালি হবে না।

উদাহরণ

নিম্নলিখিত ইনপুটগুলি সমস্ত প্রিপেন্ডেবল :

))
(((()()())))}
)>}]
()[]{}<>)

এগুলি সমস্ত সংযোজনযোগ্য :

(({}{})
((((
([]()())(
{<<{

এগুলি উভয়ই :

))((
>()[(()){
>{

এবং এগুলি সব কিছুই নয় :

)(}
{(((()()()))>
[}
((((((((((>
((((((((((<>()]

যথারীতি, এটি , সুতরাং মানক লুফোলগুলি প্রয়োগ হয় এবং বাইটের মধ্যে সংক্ষিপ্ত উত্তরটি জিততে পারে!


এই চ্যালেঞ্জটি মস্তিষ্ক-ফ্লাকের ক্ষেত্রে বিশেষত কঠিন, তাই মস্তিষ্ক-ফ্ল্যাঙ্কে লিখিত যে কোনও এবং প্রতিটি উত্তরকে সর্বাধিক ব্রাউনি নির্দেশ করে। :)


1
maximum brownie pointsআমি মনে করি যে পরিবর্তে সর্বাধিক ব্রাউন পয়েন্ট এবং কুকিজ সরবরাহ করা ব্রেন-ফ্ল্যাঙ্ককে এই চ্যালেঞ্জকে কেবল ব্রাউন পয়েন্টের চেয়ে বেশি উত্সাহিত করবে, যেহেতু আমি মনে করি না যে এটি কোনও ভাষায় একেবারেই নগণ্য , তাই ব্রেইন-ফ্লাককে ছেড়ে দিন। : পি
এরিক আউটগল্ফার

এফওয়াইআই: উভয় পরীক্ষার সমাপ্তি বন্ধনীর বন্ধনীর সাহায্যে বন্ধন বন্ধনী দিয়ে শেষ হয়।
জোনাথন অ্যালান

2
আমি যুক্তি দিয়ে বলব যে 'উভয়ই' ভুল শব্দ। মত একটি পংক্তি ][হয় না কিছুই আপনাকে সংযুক্ত করতে পারবেন যেমন বৈধ করতে পারেন appendable। একইভাবে, এটি প্রিপেন্ডেবল নয়। এটি ... 'প্রবেশযোগ্য'! পুরো বৈধ Brainflak করতে আপনি একটি স্ট্রিংয়ের মধ্যে এটি সন্নিবেশ করতে পারেন।
orlp

ইতিমধ্যে উভয়ই ভারসাম্যযুক্ত স্ট্রিং না উভয়ই?
গম উইজার্ড

@ ওয়েইটউইজার্ড ভারসাম্যযুক্ত স্ট্রিং ইনপুট হিসাবে দেওয়া হবে না। You can assume that the input will never be valid brain-flak or empty.
ডিজেএমসিএমহেম

উত্তর:


6

জেলি , 33 32 37 35 34 বাইট

বাগ পাওয়া গেছে, ভয়ঙ্কর ফিক্স +5 বাইট, আরও ভাল ফিক্স - 2 বাইট, আদনানের একটি ট্রিক ব্যবহার করে আমি এখানে আরও 1 টি দেখেছি ।

“({[<“)}]>”Z;@WœṣF¥/µÐLO‘&2µIṀ>0ȯQ

প্রত্যাবর্তন মান:

prepends [2]
 appends [0]
    both [2,0]
 neither 1

(অবৈধ ইনপুটটি উদ্দীপক ফলাফলগুলি প্রদান করে, বৈধ মস্তিষ্কের ফ্লাক থাকলেও ফিরে আসে []))

এটি অনলাইন চেষ্টা করুন! - একটি পরীক্ষার স্যুট (মুদ্রিত উপস্থাপনাগুলি মুদ্রণ করে, সুতরাং এর20জন্য[2,0]কোনও লাইন উপেক্ষা করে এবং উপেক্ষা করে-)।


5

রেটিনা , 41 40 41 বাইট

1 মার্টিনএেন্ডারকে ধন্যবাদ বাইট সংরক্ষণ করা হয়েছে

+`\(\)|\[]|{}|<>

[]})>]+
1
\W+
0
...+
01

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

  • প্রিপেন্ডেবল হ'ল 1
  • পরিমিত হয় 0
  • দুটোই 10
  • কেউ হয় না 01

সম্পাদনাগুলি

  • @ নীল দ্বারা চিহ্নিত বাগটি ঠিক করতে 1 বাইট পেয়েছে

[]})>]একটি বাইট সংরক্ষণ করে।
মার্টিন এন্ডার

@ মার্টিনএন্ডার আহ, এটি কারণ চরিত্র সেটগুলি খালি থাকতে পারে না, ধন্যবাদ!
ক্রিটিকি লিথোস

উদাহরণস্বরূপ, এটি সমস্ত অ-সংযোজনযোগ্য ইনপুটগুলির জন্য কাজ করে না (][)। আমি এটা পরিবর্তন করে এক বাইট একটি খরচে সংশোধন করা যেতে পারে মনে 101করতে ...+
নীল

বাগ ঠাহর জন্য ধন্যবাদ @Neil, আমি ভাবছি যদি সেখানে সঙ্গে এই ক্ষেত্রে হয় Bothপাশাপাশি
Kritixi Lithos

না, আমি মনে করি 10এটির জন্য একমাত্র বৈধ সমন্বয় Both
নীল

3

ব্যাচ, 337 বাইট

@echo off
set/ps=
:g
set "t=%s:<>=%
set "t=%t:()=%
set "t=%t:[]=%
set "t=%t:{}=%
if not "%t%"=="%s%" set "s=%t%"&goto g
set "s=%s:<=[%
set s=%s:>=]%
set s=%s:(=[%
set s=%s:)=]%
set s=%s:{=[%
set s=%s:}=]%
:l
if %s:~,2%==]] set s=%s:~1%&goto l
:r
if %s:~-2%==[[ set s=%s:~,-1%&goto l
if not _%s:~2%==_ set s=[]
echo %s%

আউটপুট ]শুরুতে যোগ জন্য, [পরিশেষে যোগ জন্য, ][উভয়ের জন্য, []তন্ন তন্ন জন্য।


3

হাস্কেল , 115 108 বাইট

সম্পাদনা করুন:

  • -7 বাইট: আরও গার্ড ব্যবহার করুন।
(""#)
s#""=[s>"",1>0]
s#(c:d)|Just a<-lookup c$zip"([{<"")]}>"=(a:s)#d|(a:b)<-s=[1|a==c]>>b#d|0<1=take 1$s#d

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

মত ব্যবহার করুন (""#) "))"। ফলাফল হিসাবে দেওয়া হয়:

[False,True]: needs nothing
[False]: prependable
[True,True]: appendable
[True]: both
[]: neither

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

  • আউটপুট এনকোডিংটি এমনভাবে নির্বাচন করা হয় যে বাকিগুলির জন্য ফলাফলের দ্বিতীয় উপাদানটি ফেলে রেখে প্রিপেন্ডের প্রয়োজনীয়তার সংকেত দেওয়া হয়, তবে সমস্তগুলি বাদ দিয়ে সম্পূর্ণ মিলহীনতার ইঙ্গিত দেওয়া হয়।
  • s#dপ্রত্যাশিত বন্ধ হওয়া বন্ধনীগুলির dএকটি স্ট্রিং / স্ট্যাক দেওয়া বাকী স্ট্রিংকে বিশ্লেষণ করে s
    • s#""লাইন চেক সব বন্ধ বন্ধনী স্ট্রিং এর শেষ নাগাদ পাওয়া গেছে যদি, অন্যথায় সংযোজন প্রয়োজন হয়।
    • s#(c:d)পরের অক্ষরটি cএকটি উদ্বোধনী বন্ধনী হয় কিনা তা পরীক্ষার প্রথম শাখা এবং যদি এটি পুনরাবৃত্তির জন্য স্ট্যাকের উপরের সমাপ্ত বন্ধনীটি ছেড়ে যায়।
    • অন্যথায়, যদি স্ট্যাকটি বন্ধনী বন্ধনী ধারণ করে, তবে দ্বিতীয় শাখাটি শীর্ষ অক্ষরের সাথে পরবর্তী অক্ষরের সাথে মেলে কিনা তা পরীক্ষা করে এবং যদি না হয় তবে পুনরাবৃত্তি করার পরিবর্তে একটি খালি তালিকা প্রদান করে।
    • শেষ অবধি, সর্বশেষ শাখায় স্ট্যাকটি খালি রয়েছে, এবং আমাদের কাছে একটি তুলনামূলক বন্ধনীয় বন্ধনী রয়েছে যা পুনরাবৃত্তি করার আগে, প্রিপেন্ডিংয়ের মাধ্যমে স্থির করা যেতে পারে।

2

জাপট , 44 বাইট

=Ue"%(%)|%[]|\{}|<>" ®c -1&2|1})f31 |UfD |Ug

1প্রিপেন্ডেবল, 3পরিমিতযোগ্য, 13উভয় এবং উভয়ের জন্য আউটপুট 31

এটি অনলাইন পরীক্ষা! বা একবারে সমস্ত পরীক্ষার কেস যাচাই করুন।

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

 =Ue"%(%)|%[]|\{}|<>" ®   c -1&2|1})f31 |UfD |Ug
U=Ue"%(%)|%[]|\{}|<>" mZ{Zc -1&2|1})f31 |UfD |Ug

                    // "(((()()())))}"  "([({}{})"    ">()[(()){"  "((((<>()]"
Ue"%(%)|%[]|\{}|<>" // Recursively remove all instances of "()", "[]", "{}", and "<>" from U.
                    // "}"              "(["          ">[{"        "((((]"
mZ{Zc -1&2|1}       // Replace each char Z with (Z.charCodeAt() - 1) & 2 | 1.
                    // "1"              "33"          "133"        "33331"
U=                  // Save the result in U.
f31 |UfD |Ug        // Match all instances of "31" and "13" (D = 13) and bitwise-OR the results with the first char.
                    // null|null|1      null|null|3   null|13|1    31|null|3
                    // 1                3             13           31
                    // Implicit: output result of last expression

2

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

for($c=1;$c;)$a=preg_replace("#<>|\(\)|\[\]|\{\}#","",$a=&$argn,-1,$c);echo($a=preg_replace(["#[]})>]+#","#[[{(<]+#"],[1,2],$a))<13?$a:0;

1 => পরিমিত,

2 => প্রিপেন্ডেবল,

12 => উভয়

0 => না

Testcases


"যতক্ষণ না প্রতিটি আউটপুট স্বতন্ত্র এবং সামঞ্জস্যপূর্ণ হয় ততক্ষণ ঠিক"। এটির কোনওটির জন্যই সামঞ্জস্যপূর্ণ মান রয়েছে বলে মনে হয় না।
সাইওস

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